36

甚至官方文档也曾经告诉我们PHP 的“短标签”(<? /*...*/ ?>)是“坏的”。但是,从 PHP 5.4 开始,无论设置如何,该echo品种<?= /*...*/ ?>short_open_tag都将永久启用。

有什么改变?

即使他们之前仅仅因为是否short_open_tag在共享主机平台上启用了不可预测的特性而气馁,那么这个论点肯定不会仅仅因为某些主机子集将运行 PHP 5.4 而消失吗?

可以说,对语言的这种改变并不意味着我们应该避免“短标签”的建议的改变,但是如果他们遇到了麻烦,那么 PHP 开发人员肯定看起来不再“讨厌”他们所以很多。对?

目前我能得出的唯一合乎逻辑的结论是,在 PHP 5.4 中引入这种更改必须有一些客观的理由。

它是什么?

4

4 回答 4

43

自 PHP 5.4 起,短开放标签并不总是启用。该文档讨论了简短的回声标签。这是另一回事。(短开放标签是<?样式标签,短回声标签是<?=样式标签,用于回显)。

那为什么现在默认启用它们?好吧,那里有很多脚本,使用它<?= $somevar ?>而不是<?php echo $somevar ?>. 并且因为短回显标签没有短开放标签那么糟糕,所以他们选择始终启用短回显标签。因为现在(框架和 CMS-es 的)开发人员可以依靠它们(或者更确切地说,当 PHP 5.4 成为主流时)。

但是,短打开标签仍然受short_open_tagphp.ini 中设置的影响。

于 2013-01-07T00:46:29.163 回答
4

只有短回显标签 ( <?=) 是永久启用的,而不是短打开标签 ( <?)。这是因为当您创建 HTML 模板(或任何其他视图模板)时,短回显标签非常方便,而没有它,您必须编写更多内容(例如<?php echo $var; ?>,而不是仅仅<?= $var ?>)。

于 2013-01-07T00:47:29.093 回答
2

注意:从 PHP 5.4 开始<?=,无论 short_open_tag 设置如何,短回显标签始终被识别并有效。

这就是说,它<?=总是有效的,而不是<?

于 2013-01-07T00:45:40.940 回答
2

原因是< ?在 XML 文档中使用它并且启用 short_open_tags 会在 XML 代码中产生错误。但是,,< ?=就像< ?php不是 XML 开放标签一样,可以安全使用。

于 2013-11-12T13:09:48.177 回答