“Parse error: syntax error, unexpected T_ENDWHILE in xx.php”问题解决方案

问题现象:

1、同样的代码,在某些机器上运行正常,但在特定机器上运行报错。

2、同一站点部分页面显示正常(例如<?php phpinfo();?>),但打开部分页面时,phpxx_errors.log或者页面显示错误提示“Parse error: syntax error, unexpected T_ENDWHILE in xx.php on line xx”。

错误原因:

该错误有可能是因为编写PHP脚本时丢失一个花括号(“}”),但更常见的原因是php.ini文件中short_open_tag值为Off导致的。

相关知识:PHP短标签short_open_tag

决定是否允许使用 PHP 代码开始标志的缩写形式(<? ?>)。如果要和 XML 结合使用 PHP,可以禁用此选项以便于嵌入使用 <?xml ?>。否则还可以通过 PHP 来输出,例如:<?php echo '<?xml version="1.0"'; ?>。如果禁用了,必须使用 PHP 代码开始标志的完整形式(<?php ?>)。

Note: 本指令也会影响到缩写形式 <?= ,它和 <? echo 等价。使用此缩写需要设置 short_open_tag 的值为 On。不推荐使用短标签,使用<?php ?>才是规范的方法,但因为这种短标签使用的时间比较长(历史原因),为兼容老代码,这种特性才被保存了下来。

解决方案:

php.ini文件中short_open_tag值设置为On

 

相关链接:

http://xzh.i3geek.com
Back to Top