以下是官方文件提供的信息:

有四对不同的 可以是开始和结束标记 用于PHP。其中两个<?php ? > And <script language="php"> </script>, 总是可用的。另外两个 是短标签和ASP风格标签,和 可以打开和关闭从 Php.ini配置文件。因此, 而有些人发现短标签和 ASP样式标签方便,它们都是 便携性较差,而且通常不是 推荐。

根据我的经验,大多数服务器都启用了短标记。打字

<?=

比打字方便多了

<?php echo 

程序员的便利性是一个重要因素,那么为什么不推荐他们呢?


当前回答

值得一提的是,从PHP 7开始:

短ASP PHP标签<%…%>消失了 短PHP标签<?如果short_open_tag设置为true,则>仍然可用。这是默认值。 从PHP 5.4开始,短打印标签<?=…?>总是启用的,不管short_open_tag设置如何。

摆脱第一个语言是件好事,因为它干扰了其他语言。

除了个人喜好,现在没有理由不使用短打印标签。

当然,如果您正在编写与PHP 5遗留版本兼容的代码,则需要坚持旧的规则,但请记住,PHP 5.6之前的任何东西现在都不受支持。

参见:https://secure.php.net/manual/en/language.basic-syntax.phptags.php

还要注意,上面的引用不鼓励使用第二个版本(<??>)因为它可能已经被禁用:

注意: 由于短标签可以被禁用,所以建议只使用正常标签(<?>和<?= ?>)以最大化兼容性。

其他回答

一种稍有不同的情况是在开发CodeIgniter应用程序时。CodeIgniter似乎在模板/视图中使用PHP时使用短标签,否则在模型和控制器中它总是使用长标签。这并不是框架中的硬性规则,但在大多数情况下,框架和许多来自其他用途的源代码都遵循这一约定。

我的意见?如果您从未打算在其他地方运行这些代码,那么如果您愿意,可以使用它们。当我意识到这是一个愚蠢的想法时,我宁愿不做大量的搜索和替换。

从PHP 5.4开始,echo快捷方式与短标记是分开的问题,因为echo快捷方式将始终启用。现在这是事实:

SVN由Rasmus Lerdorf修订 邮件列表讨论

因此echo快捷方式本身(<?=)现在可以安全使用了。

短标签在php中总是可用的。 因此,您不需要在脚本中重复第一个语句

例子:

    $a =10;
    <?= $a;//10 
    echo "Hellow";//
    echo "Hellow";

   ?>

突然你需要使用一个单独的php脚本,然后你可以 使用它。 例子:

<html>
<head>
<title></title>
</head>  
<body>
<p>hellow everybody<?= hi;?></p>
<p>hellow everybody  </p> 
<p>hellow everybody  </p>   
</body>
</html>

因为它会与XML声明产生混淆。不过,很多人都同意你的观点。

另一个问题是,如果用短标签编码所有东西,最后却发现最终的托管服务器已经关闭了它们,这会带来痛苦……

注意:从PHP 5.4开始,短标记<?=,现在总是可用。