Давайте посмотрим, что там у вас (упрощенный):
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
никогда не будут истинными, потому что если бы они были, то первое, если бы оно было истинным.
Я думаю, что это также хороший пример, когда вы НЕ должны использовать оператора тендера. Это просто очень трудно читать и понимать ... иногда старый добрый подход - это лучшее решение. ;)
EDIT: Чтобы ответить на вопрос, вы должны использовать другой порядок if-утверждений, начиная с самого большого (или записать их совершенно иначе). Однако, как уже упоминалось, вы не должны этого делать.
Как сделать elseif в блоке блока эхо-сигнала, возможно ли это сделать в тройном операторе? –
@MorhanSTambunan - Если вы хотите, чтобы ваш код читался, вы этого не делаете. Вы делаете это, как этот пример, и после этого вы просто эхо 'number_format ($ hasilz-> harga, ...)' –
просто вычислите значение, и когда вы закончите, вы эхо его. Таким образом, вы сохраняете удобочитаемость. Написание всего в одной строке/заявлении - это не путь, даже если это иногда бывает прохладно;) –