【问题标题】:Short Open Tag and <?=短打开标签和 <?=
【发布时间】:2025-12-07 19:10:02
【问题描述】:

一方面,我知道不鼓励在 PHP 中使用 Short Open Tag &lt;? 有几个原因:只有在 php.ini 中启用时才可用,为了清晰和避免混淆...

另一方面,我发现从 PHP 5.4.0 及更高版本开始,&lt;?= 始终可用,无论 short_open_tag ini 设置如何

更多关于 PHP 标签here.

我的问题: &lt;?= 是否被视为短开放标签?我应该避免在我的 PHP 编码中使用它吗?或者我应该做相反的事情并使用它,因为它非常有用并且不受“劝阻建议”的影响?

为澄清而编辑:&lt;?= ... ?&gt; 等同于 &lt;?php echo ... ?&gt;

【问题讨论】:

  • 对不起,如果我遗漏了什么,但是 = 对
  • 我个人会遵循最佳实践路线并坚持使用&lt;?php echo ?&gt;。我真的不能对此提出异议,因为每个人都有自己的观点,但我的习惯更是如此,并被归类为最佳实践。
  • @Jethro Hazelhurst &lt;?= ... ?&gt; 等价于&lt;?php echo ... ?&gt;,而不是&lt;?php ... ?&gt;
  • &lt;?= 不再被视为短开放标签。不鼓励&lt;? 的原因是(我认为)因为在某些情况下它是模棱两可的。 &lt;?= 没有同样的问题。我个人经常使用它。其他人则不这样做,因为他们担心它会遭受与 &lt;? 相同的命运。我认为在我们看到弃用通知之前应该没问题。
  • @apokryfos 对&lt;?xml ... ?&gt; 来说是模棱两可的

标签: php


【解决方案1】:

由于没有正式的答案,我整理了一些 cmets,在我看来,它们实际上回答了这个问题:

&lt;?= 不再被视为短打开标记。不鼓励&lt;? 的原因是因为它在某些情况下是模棱两可的,例如&lt;?xml ... ?&gt; 或其他标记语言。

【讨论】: