为什么`echo的输出是真的? 'a':是吗? 'b':'c';''b'?

时间:2013-02-07 12:33:04

标签: php

我有一些PHP代码:

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

这个输出是:

  

B'/ P>

但我预期的输出是:

  

2 个答案:

答案 0 :(得分:11)

php中的三元运算符是左关联的。

您需要使用

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

答案 1 :(得分:2)

因为您的代码评估如下:

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

它相当于:

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

然后结果为'b'