您需要将三元条件括起来:
<?phpfor ($a=0; $a < 7; $a++) { echo ( $a == 1 ? 'one' : ($a == 2 ? 'two' : ($a == 3 ? 'three' : ($a == 5 ? 'four' : 'other')))); echo "n"; // prints 'four'}exit;?>返回:
otheronetwothreeotherfourother
如您所愿。
请参阅PHP三元运算符帮助的“三元运算符”底部的注释。
表达式从左到右进行求值。因此,您实际上得到了:
echo ( ((($a == 1 ? 'one' : $a == 2) ? 'two' : $a == 3) ? 'three' : $a == 5) ? 'four' : 'other');
因此
$a=2,您得到:
echo ( ((($a==2) ? 'two' : $a == 3) ? 'three' : $a == 5) ? 'four' : 'other');
然后
echo ( ((true ? 'two' : $a == 3) ? 'three' : $a == 5) ? 'four' : 'other');
然后
echo ( ('two' ? 'three' : $a == 5) ? 'four' : 'other');然后
echo ( 'three' ? 'four' : 'other');
等等
echo 'four'。
请记住,PHP是动态类型的,并将任何非零,非空值都视为TRUE。



