我最近升级到了 xampp v1.7.2,它抛弃了 PHP 5.3。除此之外,我所有的 httpd.confs 和 php.ini 都被清除了(我想当然地认为这个版本将像所有早期的 xampp 版本一样进行升级)。不管怎样,我花了一段时间来重新配置所有服务 - 但现在我遇到了一个有趣的问题。
我工作场所使用的这个自写的 CMS 使用了很多 if-else 的替代条件语法,即
if( condition ): ?>
<some html />
<?php else: ?>
<some other html />
<?php endif;
这曾经在 xampp 1.7.1 附带的 PHP 5.2.x 上运行良好 - 现在突然这样的代码块产生了这个错误:
Parse error: syntax error, unexpected T_ELSE in ...
我没有以任何方式改变我的脚本 - 同样的脚本在 PHP 5.2.x 中绝对可以毫无故障地工作。
所以我的问题是,PHP 5.3 是否允许这样的替代条件?或者我是否必须打开配置文件中的某些隐藏选项?
请注意,我不使用短标签 - 所以它们在这里不是问题。
最佳答案
虽然 if/else 语法在 5.3 中没有改变,但语法的许多其他部分已经改变。您应该检查相关 else 语句之前的行,看看其他新语法功能之一是否使解析器感到困惑。
如果您无法找出问题出在哪里,您可以随时开始系统地删除代码行,直到只剩下以下三行:
<?php if(condition): ?>
<?php else: ?>
<?php endif ?>
更新:您确实应该在打开 short_open_tag
的情况下测试您的代码,因为您看到的语法错误就是如果您在某处有此代码将会得到的结果:
<? if(condition): ?>
<?php else: ?>
<?php endif ?>
关于php - 替代条件语法 (if-else) 在 PHP 5.3.0 (xampp) 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1552455/