以下是官方文件提供的信息:
有四对不同的
可以是开始和结束标记
用于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的可嵌入语法允许它作为一种强大的模板语言使用,并且模板应该尽可能简单易读。许多人发现使用像Smarty这样慢得多的附加模板引擎更容易,但对于我们中那些要求快速呈现和纯代码库的纯粹主义者来说,PHP是编写模板的唯一方法。
反对使用短标记的唯一有效论点是,并不是所有服务器都支持短标记。关于与XML文档冲突的注释是可笑的,因为无论如何您都不应该混合使用PHP和XML;如果你是,你应该使用PHP输出文本字符串。安全性永远不应该成为问题,因为如果您将数据库访问凭证等敏感信息放在模板文件中,那么您就会遇到更大的问题!
现在,关于服务器支持的问题,我们必须清楚自己的目标平台。如果共享主机是一个可能的目标,那么应该避免使用短标记。但是对于许多专业开发人员(比如我自己)来说,客户端承认(实际上,这取决于事实)我们将决定服务器需求。通常我自己负责设置服务器。
我们从未与不给予我们绝对控制服务器配置的主机提供商合作——在这种情况下,我们可能会遇到更多麻烦,而不仅仅是失去短标签支持。这是不会发生的。
所以,是的,我同意短标签的使用应该仔细权衡。但我也坚信这应该是一种选择,并且了解环境的开发人员应该自由地使用它们。