У меня есть код, как показано ниже:
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
никогда не будет правдой, потому что если бы они были, первое, если бы уже было правдой.
Я думаю, что это также хороший пример, когда вы НЕ должны использовать оператор tenary. Это просто делает его действительно трудным для чтения и понимания … иногда старый добрый it-подход — просто лучшее решение. 😉
РЕДАКТИРОВАТЬ: Чтобы ответить на вопрос, вы должны использовать другой порядок операторов if, начиная с самого большого (или написать их совершенно по-другому). Однако, как уже упоминалось, вы не должны этого делать.
Других решений пока нет …