4

我有这段 PHP 代码:

echo true ? 'a' : true ? 'b' : 'c';

这个的输出是:

b

但我期望的输出是:

一种

4

2 回答 2

11

php 中的三元运算符是左结合的。

你需要使用

echo true ? 'a' : (true ? 'b' : 'c');
于 2013-02-07T12:34:19.950 回答
2

因为您的代码评估如下:

echo (true ? 'a' : true) ? 'b' : 'c';

它相当于:

echo (true) ? 'b' : 'c';

然后结果是'b'

于 2013-02-07T12:48:18.433 回答