2

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

解析错误是

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

该文件特定行中的编码是

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 版本”。但是当我搜索时,没有使用这种功能的版本。

4

1 回答 1

2

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

来自 PHP 文档..

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

此外,passing arbitrary expressionsempty允许从PHP 5.5开始。

于 2014-03-10T11:23:14.097 回答