为什么从PHP 5.4开始永久启用“echo”短标签?

时间:2013-01-07 00:40:30

标签: php coding-style php-shorttags

甚至用于告诉我们PHP "short tags" (<? /*...*/ ?>) are "bad"的官方文档。但是,since PHP 5.4, the echo variety <?= /*...*/ ?> is permanently enabled regardless of the short_open_tag setting

发生了什么变化?

即使之前因为在共享主机平台上是否启用了short_open_tag的不可预测性而不鼓励它们,当然这个参数不会因为某些子主机运行PHP 5.4而消失吗?

可以说,对语言的这种改变本身并不意味着我们应该避免使用“短标签”的建议的变化,但如果他们遇到了麻烦,那看起来就像PHP开发者不再“讨厌” “他们这么多。正确?

我现在可以得出的唯一合乎逻辑的结论是,在PHP 5.4中引入这一变化必须有一些客观的理由。

这是什么?

4 个答案:

答案 0 :(得分:43)

自PHP 5.4以来,并不总是启用短开标签。该文档讨论了短回声标记。这是另一回事。 (短开标签为<?样式标签,短回声标签为<?=样式标签,用于回声)。

那为什么他们现在默认启用?好吧,那里有很多脚本,使用<?= $somevar ?>代替<?php echo $somevar ?>会有好处。并且because the short echo tags aren't as bad as the short open tags, they chose to always enable the short echo tags。因为现在开发人员(框架和CMS-es)可以依赖它们(或者更确切地说,当PHP 5.4成为主流时)。

但是,短打开标记仍然受到php.ini中short_open_tag设置的影响。

答案 1 :(得分:4)

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

答案 2 :(得分:2)

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

这就是说<?=始终有效,而不是<?

答案 3 :(得分:2)

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