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

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

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

<?=

比打字方便多了

<?php echo 

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


当前回答

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

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

and

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

and

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

其他回答

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

不,它们正在被PHP 6淘汰,所以如果你喜欢代码寿命,就不要使用它们或<%…% >标记。

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

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

and

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

and

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

如果您确定服务器将支持短标记,并且您的开发人员能够理解它,那么使用短标记是可以接受的。 许多服务器不支持它,许多开发人员在看过一次之后就会理解它。 我使用完整的标记来确保可移植性,因为它真的没有那么糟糕。

说了这么多,我的一个朋友说,为了支持其他标准化的asp样式标签,比如<%而不是<?,这是php.ini中称为asp_tags的设置。他的理由如下:

... 随意的约定应该是 标准化。也就是说,任何时候我们都可以 面对一系列的可能性 都是等价的,比如什么 奇怪的标点符号我们的编程 应该用语言来界定 我们应该选择一个标准 坚持下去。这样我们 减少所有人的学习曲线 语言(或者其他的东西 公约属于)。

听起来不错,但我不认为我们所有人都能在这件事上保持一致。与此同时,我将坚持使用完整的<?php。

值得一提的是,从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

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

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