【问题标题】:Parse error: unexpected '@' symbol in constant function in php解析错误:php 中的常量函数中出现意外的“@”符号
【发布时间】:2014-03-10 11:21:12
【问题描述】:

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

解析错误是

解析错误:语法错误,出现意外的“@” /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 版本”。但是当我搜索时,并没有使用这种功能的版本。

【问题讨论】:

    标签: php function php-parse-error


    【解决方案1】:

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

    来自 PHP 文档..

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

    此外,empty 上的 passing arbitrary expressions 仅允许从 PHP 5.5 开始。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-09
      • 2014-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多