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

Lig*_*ica 36 php coding-style php-shorttags

甚至用于告诉我们PHP"短标签"(<? /*...*/ ?>)的官方文档都是"糟糕的".然而,由于PHP 5.4,该echo品种<?= /*...*/ ?>被永久不管启用short_open_tag设置.

改变了什么?

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

可以说,对语言的这种改变本身并不意味着我们应该避免使用"短标签"的建议的变化,但如果他们遇到了麻烦,那么看起来PHP开发人员似乎不再"讨厌"他们许多.对?

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

它是什么?

kok*_*okx 43

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

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

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

  • 我想这是有道理的.我的意思是,就像任何PHP设计决定一样...... (13认同)
  • 好吧,在所有安装上给出相同的行为是一件好事.我们拥有的选择越多,人们就越需要考虑的事情.这里的问题是,在模板中,短回声很好,但是短打开标签会导致与XML处理指令发生冲突(想想<?xml,<?xsl,...),所以我们为便携式代码增加了更多的舒适度...我希望能解释这种情况下设计决策的意义-Johannes(PHP开发团队成员) (3认同)

lup*_*tus 5

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