我很难理解为什么下面的代码在我应该是“FOO1”的时候回显出“FOO2”。
$tmp = 'foo1';
echo $tmp == 'foo1' ? 'FOO1' : $tmp == 'foo2' ? 'FOO2' : 'NO FOO';发布于 2011-07-20 16:51:54
基本上,PHP将其分解为:
$tmp = 'foo1';
echo ($tmp == 'foo1' ? 'FOO1' : $tmp == 'foo2') ? 'FOO2' : 'NO FOO';括号中的部分将返回FOO1,它的计算结果为TRUE,因此第二个条件语句实质上是TRUE ? 'FOO2' : 'NO FOO'; -反过来,它的计算结果始终为'FOO2'
注意:这与C三元运算符结合性不同
发布于 2011-07-20 16:45:47
$tmp = 'foo1';
echo $tmp == 'foo1' ? 'FOO1' : ($tmp == 'foo2' ? 'FOO2' : 'NO FOO');发布于 2011-07-20 16:51:13
$tmp = 'foo1';
echo $tmp == 'foo1' ? 'FOO1' : ($tmp == 'foo2' ? 'FOO2' : 'NO FOO');https://stackoverflow.com/questions/6759210
复制相似问题