打开php标签后关闭大括号时出现语法错误

时间:2010-09-29 07:13:09

标签: php

我遇到的问题看起来非常像这样:

<?php 
function my_function() {

    if(!empty($variable)) {
        //Do some stuff
    }
    else {
        ?>show a message<?php 
    }
}
?>

问题是我得到一个解析错误:

解析错误:语法错误,第8行/www/bla/bla/bla.php中的意外'}'

我知道一个事实,我没有错过或者有一个额外的'}'大括号因为代码在我的本地服务器上工作得很好而且我运行了一个验证器来确保语法是正确的,但是,当我将代码移植到在线服务器,我收到错误。

我认为它与php安装有关,不支持在条件之间关闭和重新打开php标签,但我不确定如何修复它。

我知道我可以做回声'消息';相反,但这不是脚本使用这种语法来显示消息的唯一地方,所以在这里修复它只意味着我会在另一行上得到错误,然后是另一行。

感谢。

2 个答案:

答案 0 :(得分:3)

因为它代表的是一段代码在PHP 5.2.14上运行得很好。

当你粘贴在代码中时,你确定你完全按原样粘贴了这一行吗?:

?>show a message<?php

我唯一能想到的是服务器上的代码使用的是短开放标记<?,但在服务器SHORT_OPEN_TAG中关闭了php.ini,例如:< / p>

?>show a message<?

答案 1 :(得分:0)

我的文件存在类似问题。这在我的文件中引发了错误:

<?php } ?> 

这看起来很愚蠢,我添加了一条似乎可以解决错误的评论:

<?php 
  //
  }
?>