今天在我的 CentOS VPS 上使用 <?= ?> 指令对模板PHP文件做直接输出时,发现根本无法输出,于是去找原因,发现CentOS 的 php.ini 默认会关闭短开放标签的功能(Short Open Tag),也就是不能使用 <? ?> 标签,只要把短开放标签重新打开即可。

对于 PHP 5.4 以前的版本,如果关闭的短开放标签,就不能再使用 <?= ?> 进行输出了,而对于 PHP 5.4+,不论是否关闭了短开放标签功能,都可以使用 <?= ?> 进行输出。

具体 CentOS 的开发者为什么想要在默认配置里关闭短开放标签,可能是因为短开放标签与XML文件头冲突的原因吧(<?xml version="1.0"?>)。

个人觉得,编写AJAX程序时候,使用JSON代替XML要方便得多。

在执行项目时php中报syntax error, unexpected end of file in这个错误,我们往往会排查是否缺标点符号之类的。

但是,使用编辑器的原因,有这个错误编辑器却没有反馈出来,而且,也仔细检查了代码,也是没问题。

这个时候就要想想是不是其他地方有问题了。

新的公司,在php文件中使用了php的段标签,其实很常见。但是,新搭的环境却不一定支持。

修改php.ini文件:

short_open_tag = Off为on

short_open_tag作用:

在php的配置文件(php.ini)中有一个short_open_tag的值,开启以后可以使用PHP的段标签:(<? ?>)。

同时,只有开启这个才可以使用 <?= 以代替 <? echo 。在CodeIgniter的视频教程中就是用的这种方式。

但是这个短标签是不推荐的,使用<?php ?>才是规范的方法。只是因为这种短标签使用的时间比较长,这种特性才被保存了下来。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐