3

我一直在使用 SimpleImage 类进行图像处理,但它在一个特定站点上不起作用,服务器上的 PHP 版本是 5.1.6 - 所以六岁

解析错误:语法错误,意外的 ':' in...

导致错误的有问题的行是

$height = $height ?: $width; 
$quality = $quality ?: $this->quality;
$filename = $filename ?: $this->filename;

有解决方法吗?

4

2 回答 2

4

三元运算符简写$val1 ?: $val2在 PHP 5.3 中引入的,与$val1 ? $val1 : $val2

于 2013-11-07T20:37:29.053 回答
3

因为您在三元运算符中缺少参数,所以应该是这样的语法:

$height = $height ? $height : $width;
$quality = $quality ? $quality : $this->quality;
$filename = $filename ? $filename : $this->filename;

后面应该有2个变量?符号,由 : 符号分隔。如果条件(在?之前)为真,则第一个变量是设置的。第二个变量是条件为假时设置的变量。

编辑:

该语法?:仅从 PHP 5.3 版本开始可用,请确保您运行的是 php 5.3 或更高版本。

于 2013-11-07T20:35:00.273 回答