解析错误:php中的常量函数中出现意外的'@'符号

时间:2014-03-10 11:21:13

标签: php function php-parse-error

在我的项目中,当我尝试安装软件时,我在安装的最后一步出现了解析错误

解析错误是

  

解析错误:语法错误,意外的'@'in   /path/to/server/subfolder1/projectfoldername/subfolder/filename.php   第21行

该文件特定行的编码是

if(@constant($matches[1][0]) != @$matches[1][0]){
        if(!empty(@constant(@$matches[1][0])) & !empty(@$matches[0][0]) & !empty(@$design_m_r[$key])){
           $design_m_r[$key] = @str_replace($matches[0][0], constant($matches[1][0]), $design_m_r[$key]);
         }
        }

我们的网站php版本是php 5.3.28。我试图搜索此错误。但我没有得到任何解决方案。一些论坛告诉我这个错误为“这是高级的php版本功能。所以这不应该支持php 5.3.28版本”。但是当我搜索时,没有版本使用这种类型的功能。

1 个答案:

答案 0 :(得分:2)

您不能像这样使用@错误抑制运算符。

来自PHP文档..

  

@ -operator仅适用于表达式。一个简单的经验法则是:   如果你可以获取某些东西的价值,你可以在@运算符前面加上   它。例如,您可以将它添加到变量,函数和   包括调用,常量等。你不能把它添加到   函数或类定义,或条件结构,如if   和foreach,等等。

此外,empty上的passing arbitrary expressions仅允许来自 PHP 5.5