以下是官方文件提供的信息:
有四对不同的
可以是开始和结束标记
用于PHP。其中两个<?php ? >
And <script language="php"> </script>,
总是可用的。另外两个
是短标签和ASP风格标签,和
可以打开和关闭从
Php.ini配置文件。因此,
而有些人发现短标签和
ASP样式标签方便,它们都是
便携性较差,而且通常不是
推荐。
根据我的经验,大多数服务器都启用了短标记。打字
<?=
比打字方便多了
<?php echo
程序员的便利性是一个重要因素,那么为什么不推荐他们呢?
值得一提的是,从PHP 7开始:
短ASP PHP标签<%…%>消失了
短PHP标签<?如果short_open_tag设置为true,则>仍然可用。这是默认值。
从PHP 5.4开始,短打印标签<?=…?>总是启用的,不管short_open_tag设置如何。
摆脱第一个语言是件好事,因为它干扰了其他语言。
除了个人喜好,现在没有理由不使用短打印标签。
当然,如果您正在编写与PHP 5遗留版本兼容的代码,则需要坚持旧的规则,但请记住,PHP 5.6之前的任何东西现在都不受支持。
参见:https://secure.php.net/manual/en/language.basic-syntax.phptags.php
还要注意,上面的引用不鼓励使用第二个版本(<??>)因为它可能已经被禁用:
注意:
由于短标签可以被禁用,所以建议只使用正常标签(<?>和<?= ?>)以最大化兼容性。
PHP短标记(<?)和快速回显标记(<?=)之间必须有明确的区别。
前者是PHP编码标准所禁止的,主要是出于常识,因为如果您必须将代码移到不支持它的服务器上(并且您不能启用它),那么它就是一个PITA。正如你所说,许多共享主机确实支持短标签,但“许多”并不是全部。如果您希望共享脚本,最好使用完整的语法。
而简略的回显标记<?=不能禁用,因此完全可以使用。
我同意<?对程序员来说比<?PHP,但只要每次使用相同的表单,就可以进行批量查找和替换。
我根本不认为可读性是一个理由。大多数认真的开发人员都可以选择语法高亮显示。
正如ThiefMaster在评论中提到的,从PHP 5.4开始,<?=……?>标签在任何地方都被支持,不管shortttags设置如何。这应该意味着在可移植代码中使用它们是安全的,但这也意味着依赖于PHP 5.4+。如果你想支持5.4版本之前的版本,并且不能保证短标签,你仍然需要使用<?PHP回显…? >。
此外,您还需要知道ASP标记<%、%>、<%=和script标记已从PHP 7中删除。因此,如果您想要支持长期可移植的代码,并想要切换到最现代的工具,请考虑更改这部分代码。