PHP速记三元组的行为不符合预期
PHP 5.3中引入的速记三元运算符应如下所示:PHP速记三元组的行为不符合预期,php,Php,PHP 5.3中引入的速记三元运算符应如下所示: $result = 'foo' ?: 'bar'; 应返回foo。但是,在我的live服务器(PHP5.4.26)上,结果是bar 一个完整的三元运算符语法可以很好地工作 $test = 'foo'; $result = $test ? $test : 'bar'; 正确返回foo。这两种语法在我的开发服务器(PHP5.3.10)上都很好 有没有什么方法可以让它失效?有什么建议吗 将所有实例更改为完整的systax是不可取的—外部库(Amaz
$result = 'foo' ?: 'bar';
应返回foo
。但是,在我的live服务器(PHP5.4.26)上,结果是bar
一个完整的三元运算符语法可以很好地工作
$test = 'foo';
$result = $test ? $test : 'bar';
正确返回foo
。这两种语法在我的开发服务器(PHP5.3.10)上都很好
有没有什么方法可以让它失效?有什么建议吗
将所有实例更改为完整的systax是不可取的—外部库(Amazon AWS SDK)中存在大量实例
更正:
$result = 'foo' ?: 'bar';
在两台服务器上都有正确的结果,但是
$test = 'foo';
$result = $test ?: 'bar';
在实时服务器上错误地返回
bar
。哪一个更为复杂…$result='foo'?'foo’:‘bar’代码>无法在任何版本的PHP中复制:。你确信这是真的吗?如果是这样的话,你应该打开一个官方的PHP bug,其中包含尽可能多的信息$结果=$test?:'bar';var_dump($结果);除了这台服务器,我也不能复制任何东西!找到了至少我可以贡献的东西。