我相当有能力使用PHP三元运算符。然而,我试图找出为什么下面的代码与if-else等价结构不匹配时遇到了一个障碍。测试在不同的数字上运行三次。每个结构的输出在代码下面。嵌套的php三元麻烦:三元输出!= if - else
三元:
$decimal_places = ($max <= 1) ? 2 : ($max > 3) ? 0 : 1;
三元输出:
最大:-100000十进制:0
最大:0.48十进制:0
最大:0.15十进制:0
的if-else
if($max <= 1)
$decimal_places = 2;
elseif($max > 3)
$decimal_places = 0;
else
$decimal_places = 1;
的if-else输出:
最大:-100000十进制:2
最大:0.48十进制:2
最大:0.15十进制:2
任何人都可以告诉我为什么这两个控件结构不输出相同的数据?
嵌套三元运算符不是一个好主意的原因之一 – 2011-01-26 17:04:39
它们并不完全等价,你知道的。整个elseif将在三元结构中短路。它们也不是要嵌套的。 – 2011-01-26 17:05:22