Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP速记三元组的行为不符合预期_Php - Fatal编程技术网

PHP速记三元组的行为不符合预期

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

PHP 5.3中引入的速记三元运算符应如下所示:

$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($结果);除了这台服务器,我也不能复制任何东西!找到了至少我可以贡献的东西。