>我有下面的代码:
number_format(($hasilz->harga>100000 ? $hasilz->harga+2000 :
($hasilz->harga>300000 ? $hasilz->harga+4000 :
($hasilz->harga>400000 ? $hasilz->harga+8000 :
$hasilz->harga+10000))), 0, ',', '.')
此代码结果并读取 +2000 和 +10000知道吗?
让我们看看你得到了什么(简化):
if (hagara > 100000) {
harga+2000
} else if (hagara > 300000) {
hagara+4000
} else if (hagara > 400000) {
hagara+8000
} else {
hagara+10000
}
如果你这样写,很容易看到。 hagara
要么是>100000,结果为 +2000,要么更少,则结果为 +10000。
換句話說,這兩個else if
永遠不會是真的,因為如果它們是真的,第一個如果已經是真的了。
我认为这也是一个很好的例子,当你不应该使用租赁运算符时。它只是让它真的很难阅读和理解......有时,旧的IT方法只是更好的解决方案。;)
编辑:要回答这个问题,你必须使用不同的if语句顺序,从最大的一个开始(或者写得完全不同)。但是,如前所述,您不应该这样做。