Php语法错误混乱

时间:2013-11-05 05:41:00

标签: php syntax-error

我一直在使用php简单的图像库进行图像操作很长一段时间(之前从未遇到过这个错误)。

现在,当代码联机并且本地服务器中没有发生错误时,脚本停止抛出语法错误

显示错误:

 **Parse error: syntax error, unexpected ';' in path-to-simpleimage/SimpleImage.php on line 128**

 and the 128th line of code is 

**$height = $height ?: $width;**

我无法识别行中的语法和“?:”的使用,而且几乎所有simpleimage函数都有相同的片段

我的同事也多次使用Google搜索,但没有改进。

谢谢你们

2 个答案:

答案 0 :(得分:2)

就像

   ($condition) ? true : false;

如果expr1的计算结果为TRUE,则表达式(expr1) ? (expr2) : (expr3)的计算结果为expr2;如果expr1的计算结果为FALSE,则结果为expr3。

从PHP 5.3开始,可以省略三元运算符的中间部分。如果expr1的计算结果为TRUE,则表达式expr1 ?: expr3返回expr1,否则返回expr3。

参考http://php.net/manual/en/language.operators.comparison.php

答案 1 :(得分:1)

短格式三元仅适用于PHP> = 5.3。您的某个环境可能正在运行旧版本。要修复,升级或只是更改代码以使用传统的三元形式:

$height = $height ? $height : $width;

仅供参考,在这里使用三元组是很奇怪的($height被分配给它自己)。如果你想继续进行重构,那么更可读的选择是:

if (!$height) {
    $height = $width;
}

由于这是第三方库,您可能根本不想修改代码。在这种情况下,您可以选择查找包含所需功能的旧版本,但目标是生产盒上的旧版PHP或升级PHP版本。