У меня есть переменная, которой нужно присвоить одно из четырех возможных значений в зависимости от двух условий.
В настоящее время я делаю это:
if (conditionsOne) {
$foo = (conditionTwo) ? 'one' : 'two';
} else {
$foo = (conditionTwo) ? 'three' : 'four';
}
Но это, ИМХО, немного задевает "золотое правило" программирования, которое гласит: "никогда не пишите один и тот же код дважды" (если кто-то меняет conditionTwo
и забывает изменить другой conditionTwo
, у нас ошибка).
Я также мог бы написать это как вложенный тернар, но это также требовало бы в два раза больше условия и было бы менее читабельным.
Есть ли способ в PHP сделать такое назначение без дублирования кода (чтобы не проверять дважды одно и то же условие) и без ущерба для читабельности?