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

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

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

<?=

比打字方便多了

<?php echo 

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


当前回答

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

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

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

其他回答

有人会问使用短标签的意义是什么。

打字更快

MDCore说:

<?=比输入<?php echo

是的,它是。你不必在整个脚本中键入7个字符* X次。

然而,当一个脚本需要一个小时,或10个小时,或更多的时间来设计、开发和编写,那么在脚本的整个过程中,这几秒钟没有在这里和那里输入那7个字符的时间又有什么关系呢?

相比之下,如果短标签没有打开,或正在打开,但更新或有人更改ini文件/服务器配置,可能会导致一些核心或所有脚本无法工作,其他可能性。

您获得的小好处并不能抵消潜在问题的严重性,即您的站点无法工作,或者更糟,只有部分无法工作,因此需要解决的问题令人头痛。

更容易阅读

这取决于熟悉程度。 我总是看到并使用<?php echo。所以当<?=并不难读,只是我不熟悉,所以不容易读。

如果前端和后端开发人员分开(就像大多数公司一样),那么前端开发人员是否会更熟悉这些模板?=等于“PHP打开标签和回声”? 我想说大多数人会觉得更合乎逻辑的答案更舒服。也就是说,一个明确的PHP打开标记然后发生了什么"echo" - <?php echo。

风险评估 问题=整个网站或核心脚本无法工作;

发生问题的可能性非常低+结果的严重程度非常高=高风险

结论

你可以在这里节省几秒钟,而不必输入几个字符,但为此冒了很大的风险,结果也可能会失去可读性。

前端或后端程序员熟悉<?=更容易理解<?php echo,因为它们是标准的php东西- standard <?PHP打开标签和众所周知的“echo”。 (即使是前端程序员也应该知道“echo”,否则他们根本不会在框架提供的任何代码上工作)。

然而相反的情况就不太可能发生了,有人不太可能从逻辑上推断出PHP短标记上的等号是“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声明产生混淆。不过,很多人都同意你的观点。

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

短标签在某些web服务器(共享主机等)中默认是不开启的,所以如果你需要转移到这些服务器上,代码可移植性就成了一个问题。 对某些人来说,可读性可能是个问题。许多开发人员可能会发现<?PHP作为代码块的开始标记比<?当你扫描一个文件时,特别是当你被HTML和PHP紧密交织在一起的代码库困住时。

http://uk3.php.net/manual/en/language.basic-syntax.phpmode.php上有很多建议,包括:

而有些人发现短标签和 ASP样式标签方便,它们都是 便携性较差,而且通常不是 推荐。

and

如果您正在嵌入PHP,请注意 在XML或XHTML中 使用<?保留PHP ?>标记 符合标准。

and

应该避免使用短标签 在开发应用程序或 用于 重新分配,或者在PHP上部署 不属于你的服务器 控件,因为短标记可能不是 目标服务器支持。为 可移植的、可重新分发的代码 不要使用短标签。