php - 替代条件语法 (if-else) 在 PHP 5.3.0 (xampp) 上失败

标签 php if-statement xampp conditional-statements

我最近升级到了 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/

相关文章:

php - 插入 php include with Javascript

php - 使用 register_shutdown_function() 处理 PHP 中的 fatal error

windows - 根据批处理文件中的 IF ELSE 条件设置变量不同的值

php - 如果和空行为古怪

php - 当我点击提交按钮时数据没有更新

php - mysql 列中除最后一行之外的所有单元格的总和

php - laravel 在单击按钮时写入 mysql 数据库

c - 如果条件不起作用

java - 尝试联机查看已部署的 JSP 页面。 XAMP/Tomcat

php - 如何在 PHP (MAMP) 中启用错误报告?