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

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

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

<?=

比打字方便多了

<?php echo 

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


当前回答

截至2019年,我不同意这里的某些答案。推荐使用:

1. 长标签

<?php /* code goes here */ ?>

2. 短回声标签

<?= /* code goes here */ ?>

原因:它们是PSR-1基本编码标准推荐的

其他短标签,如<?/* code goes here */ ?>不推荐

说明书说:

PHP代码必须使用长标记或短回显 标签;它绝对不能使用其他的标签变体。

其他回答

<?PHP ?>更适合使用,因为这种编程语言的开发人员已经大量更新了他们的核心语言。你可以看到短标签和长标签之间的区别。

短标签将突出显示为浅红色,而较长的标签将突出显示为深色!

然而,回显某些内容,例如:<?=$variable;?>很好。但更喜欢长标签。<?PHP回显$variable;>

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

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

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

把< ?(不带尾随空格)到<?PHP(后面有一个空格):

find . -name "*.php" -print0 | xargs -0 perl -pi -e 's/<\?(?!php|=|xml|mso| )/<\?php /g'

把< ?(后面有空格)到<?PHP(保留尾随空格):

find . -name "*.php" -print0 | xargs -0 perl -pi -e 's/<\? /<\?php /g'

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

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

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