如果回声语句中的其他内容



>我有下面的代码:

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语句顺序,从最大的一个开始(或者写得完全不同)。但是,如前所述,您不应该这样做。

最新更新