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

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

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

<?=

比打字方便多了

<?php echo 

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


当前回答

以下是其美妙的流程图:

来源:关于软件工程堆栈交换的类似问题

其他回答

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

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

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

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

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

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

如果有人还在关注这个…PHP 5.4.0 Alpha 1 <?=总是可用的:

http://php.net/releases/NEWS_5_4_0_alpha1.txt 所以看起来短标签(a)是可以接受的,(b)是可以保留的。至少现在……

为了避免可移植性问题,在PHP标记开始时使用<?如果你的php文件是纯php,没有HTML,你不需要使用结束标签。