使用<?php?> VS. <??>

Adi*_*Adi 1 php

可能重复:
PHP短标签是否可以使用?

我们目前正在使用两种样式的混合来在我们的phtml文件中编写php代码.似乎没有什么破坏,但我只是好奇使用一个而不是另一个.

(寻找更多的东西......'最佳实践'答案)

Ant*_*udt 6

<? ?>被称为短标签,需要在php ini文件中的服务器上启用它们.你不应该使用它们的唯一原因是因为兼容性,在我看来这不是什么大不了的事,但是如果你正在编写一个应该被其他服务器上的其他人使用的CMS你应该使用普通标签<?php ?>

  • 如果您可以控制自己的服务器,那么为什么与不运行代码的神秘其他服务器兼容呢? (3认同)
  • 我很好奇为什么你认为兼容性不是一个"大问题"?实际上,通过万维网这样的系统,根据定义,通过各种技术可以被全世界数十亿人访问,兼容性是一个很好的交易. (2认同)

小智 5

<? ?>语法需要设置为"开"在php.ini,所以它可能无法正常工作

<?php ?> 永远有效.


Mar*_*lin 5

始终可用:

  • <?php?>(最常见的)
  • <script language="php">& </script>(最不常见)

通过Short_open_tags php.ini 指令启用:

  • <?& ?>(短标签)允许<?=$var;?>您可以回显。
  • <%& %>(ASP 风格)

当我发布代码时,我总是使用<?php&,?>因为整个 PHP 生态系统都支持它。如果您使用短开放标签并分发代码,则某些客户端可能无法使用它。

  • 某些 PHP 安装可能没有 GD、MySQL 或任意数量的可选 PHP 组件。如果您坚持只包含“保证”的功能,那么您将编写非常无用的脚本。 (2认同)

You*_*nse 5

<?=$var?>如果您使用 PHP 模板,这是输出变量的唯一明智的方法。在页面上编写每个变量<?php echo $var ?>是一件痛苦的事情。因此,如果您是受虐狂(或使用不同的模板),请选择长形式,否则坚持使用短形式(至少在模板中)

  • @Tomalak不,C++首先是一种多范式语言,专注于OOP,但这完全无关紧要,你的类比是无稽之谈。短标签没有 C++ 类似物;C++ 中不存在任何不建议使用的功能,因为有人可能会关闭该功能,从而破坏您的代码。相反,您使用完成工作所需的工具,并告诉人们“*这些*是我的程序的依赖项”。仅使用可以保证每个潜在安装都支持的软件来编写软件是可笑的。 (5认同)
  • @Tomalak - **友善一点**。如果您对答案有技术上的分歧,请以_专业_方式进行讨论。我已相应地编辑了您的评论。 (3认同)