PHP短标签(short_open_tag ?>),还是忘了它吧
是的,PHP默认是开启PHP短标签的,即默认情况下short_open_tag=ON,大家看看PHP的官方说明上面讲的很清楚下面的官方配置文件上面也是这样说的(绿色和红色标)。
; This directive determines whether or not PHP will recognize code between
; <? and ?> tags as PHP source which should be processed as such. It is
; generally recommended that <?php and ?> should be used and that this feature
; should be disabled, as enabling it may result in issues when generating XML
; documents, however this remains supported for backward compatibility reasons.
; Note that this directive does not control the <?= shorthand tag, which can be
; used regardless of this directive.
; Default Value: On
; Development Value: Off
; Production Value: Off
; http://php.net/short-open-tag
short_open_tag = Off
不过在这里我还是建议大家还是忘了这个默认设置吧,最好还是不要使用短标签的好。
大家如果在Linux下编辑安装PHP的时候一定会发现,在源文件根目录下面有两个建议配置文件:
php.ini-development
php.ini-production
即开发环境推荐配置和生产环境下推荐配置,这两个文件是官方推荐配置,基本上大家根据使用情况采用这两个文件作为自己的php.ini文件应该能应付需求,相信不在少数同学也是这么做了。但是再看看上面官方配置文件截取部分即红色标部分,大家应该可以看到,实际上这两个配置文件默认是关闭短标签配置项的,也就是如果大家使用这两个推荐配置的话,同时没有特别对 short_open_tag 做配置修改的话,那么实际上默认你的PHP运行环境是不支持短标签的,这也就是为什么我写这篇文章的原因。大家还是放弃PHP短标签吧,实际上即便你开启了短标签,在一些情况下还是不得不关闭它,比如在和XML文件配合使用的时候
<? echo '<?xml version="1.0"'; ?>
多么糟糕的领悟?!
其实像这样的情况还有很多,比如你所运行的环境确实是关闭了短标签,而你又无法或很困难去修改short_open_tag配置的时候
所以我建议还是放弃这个『快捷方式』吧,何必留此隐患,你说呢?
当然不得不多说一句,仔细看一看官方文档你会发现,看上面黄色标。有一种使用形式,即
<?=
,它和 <? echo
等价, 从 PHP 5.4.0 起, <?=
总是可用的。
参考资料