【问题标题】:Is <? ... ?> valid shorthand PHP and will it always work? [duplicate]是 <? ... ?> 有效的速记 PHP,它会一直有效吗? [复制]
【发布时间】:2014-04-19 00:42:17
【问题描述】:

偶然发现

<?php ... ?>

可以缩短为

<? ... ?>

这是个坏主意吗?在某些情况下?它们是什么情况?还有速记例子吗?我知道涉及条件语句的速记示例,但我不觉得它们更容易阅读。

如果这在其他地方得到了回答,请给我链接,但我无法通过搜索找到它。也许我没有使用正确的关键字。

【问题讨论】:

  • 恕我直言,避免使用它们,因为这会使人们对 XML 感到困惑
  • 我一直不明白短标签的使用;额外的三个击键并不是真正的 问题;并且使用短标签似乎会冒不必要的问题。
  • 我同意@DavidThomas。根据我的经验,它们是懒惰的标志。我比较喜欢 PHP 块以文本php 开头。当你的代码如此清晰时,你很难误解它。

标签: php shorthand


【解决方案1】:

这个简写已经存在了很长时间,但是its use is discouraged(现在默认禁用)因为与其他语言的各种不兼容——与 ASP 接受&lt;? x ?&gt; 的能力以及各种 XML 结构的模糊性,是两个明显的例子。

选择不使用它。

相比之下,&lt;?= x ?&gt; 简写(相当于&lt;?php echo x ?&gt;)和is enabled by default since PHP 5.4 重新流行起来,因为它没有遇到同样的问题。

与往常一样,请查阅文档以获取有关此类事情的规范信息。

【讨论】:

  • 太棒了,谢谢。很好的答案,并给我留下了一些参考 URL 以供进一步阅读,这使我想到了这一点。有人会使用 的情况是什么?
  • @DanielSchwarz:我们不谈论那个:P
  • 哈哈,我想了很多,不过这是一个有趣的发现!
【解决方案2】:

速记标签仅在某些设置中启用。他们气馁。标签见 PHP 手册:http://www.php.net/manual/en/language.basic-syntax.phptags.php

PHP 还允许使用短打开标签(不鼓励使用,因为它们仅在使用 short_open_tag php.ini 配置文件指令启用,或者 PHP 配置了 --enable-short-tags 选项时才可用。

就其他速记而言,不存在其他速记。 &lt;?= ?&gt; 速记可能被认为是一个,尽管它的唯一用途是输出一个变量(如该问题的另一个答案中所述)。结尾?&gt; 的省略是一种。对于不包含 PHP 代码以外的任何内容的文档来说,它非常方便。我在上面链接的手动条目中也提到了这种技术。

【讨论】:

  • &lt;?= x ?&gt; 确实存在。
  • @LightnessRacesinOrbit 它是 PHP 特有的吗?
  • 是的,我知道@LightnessRacesinOrbit,它对于在 HTML 之间插入非常有用,谢谢!
  • @blakeo_x:是的,这就是为什么它不会遇到同样的问题,并且从 PHP 5.4 开始默认启用。
  • @LightnessRacesinOrbit 很有趣。我会调整答案。
【解决方案3】:

它会起作用吗?在某些情况下。 PHP 有几个可用的开始标签,看看here。但你应该小心,因为它取决于 php 配置(通常是 /etc/php.ini 或 /etc/php/php.ini)。有一个选项short_open_tag = On。如果未启用,代码将在视图中呈现,不会作为 php 代码执行。

【讨论】:

    【解决方案4】:

    正如 blakeo_x 所说,速记仅在 PHP 配置文件启用时才有效。 不鼓励这样做,因为您可能必须在未启用速记的其他服务器上运行它。因此,请尝试改用更长的版本&lt;?php

    【讨论】:

      猜你喜欢
      • 2011-06-16
      • 1970-01-01
      • 1970-01-01
      • 2013-03-30
      • 1970-01-01
      • 1970-01-01
      • 2012-08-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多