在我的项目中,当我试图安装软件时,在安装的最后一步会出现一个解析错误。
解析错误是
/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版本”。但是当我搜索时,没有使用这种函数的版本。
发布于 2014-03-10 03:23:14
您不能这样使用@
错误抑制操作符。
来自PHP文档。
@-运算符只对表达式起作用。一个简单的经验法则是:如果你能得到某物的价值,你可以在它前面加上@运算符。例如,您可以将其添加到变量、函数和包含调用、常量等。您不能将其用于函数或类定义,或条件结构,如if和foreach,等等。
另外,passing arbitrary expressions
on empty
只允许来自PHP5.5。
https://stackoverflow.com/questions/22298736
复制