在PHP 5.3中引入,速记三元运算符应该像这样工作:
$result = 'foo' ?: 'bar';
应该返回foo
。但是,在我的实时服务器(PHP 5.4.26)上,结果为bar
。
完整的三元运算符语法可以正常工作。
$test = 'foo';
$result = $test ? $test : 'bar';
正确返回foo
。这两种语法在我的开发服务器上都很好(PHP 5.3.10)。
有什么方法可以以某种方式禁用它?有什么建议吗?
将所有实例更改为完整的systax是不可取的 - 外部库(Amazon AWS SDK)中存在大量数据。
校正:
$result = 'foo' ?: 'bar';
两台服务器上都有正确的结果,但
$test = 'foo';
$result = $test ?: 'bar';
在实时服务器上错误地返回bar
。哪个更凶悍...