PHP速记三元不符合预期

时间:2014-03-24 11:39:19

标签: php

在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。哪个更凶悍...

0 个答案:

没有答案