компилятору глубоко похер на это все. с его точки зрения все эквивалентные конструкции будут преобразованы в то же самое. хот 10 способов это написать выдумай. это делается чисто для читабельности кода.
А тернарный оператор - не лучшая практика, у него плохая расширяемость и читаемость. Можно использовать только там, где будет ровно два варианта и расширения не предусматривается.
Например: return $err ? "Error: $err" : "OK";
Ты это вообще к чему? Я пишу о том, что тернарный оператор удобен только там, где не ожидается больше двух исходов. Если есть хоть небольшой шанс, что список условий и вариантов возврата вырастет, то лучше тернарным оператором не пользоваться, чтобы потом не переписывать.
Скорее наоборот. Отказываться надо если есть практически гарантия, что через 10 минут ты полезешь в этот кусок кода и будешь что-то дописывать. Преждевременная оптимизация в виде усложнения читабельности с закладкой на будущее - прямое нарушение YAGNI.
Но вообще говоря это далеко не самый проблемный вопрос, чтобы сидеть и думать "а надо ли". Думать дольше, чем переделать.
В идеальном мире это было бы так. Но я много раз видел, как тернарные операторы начинали разрастаться по схеме
return condition ? a : (condition2 ? (condition 3 ? b : c) : condition4 ? ... )...)
И тут в игру врывается гремучее узконаправленное говно мамонта:
CHOOSE CASE smth
CASE 34 TO 99, IS > 559, 1, 5, 33
x = 'fuck yeah!'
CASE ELSE
x = 'nani?!'
END CHOOSE
return b;
А тернарный оператор - не лучшая практика, у него плохая расширяемость и читаемость. Можно использовать только там, где будет ровно два варианта и расширения не предусматривается.
Например: return $err ? "Error: $err" : "OK";
? 'ok'
: 'error'
И все ок с тернарным оператором, просто правильно расставляй.
Но вообще говоря это далеко не самый проблемный вопрос, чтобы сидеть и думать "а надо ли". Думать дольше, чем переделать.
return condition ? a : (condition2 ? (condition 3 ? b : c) : condition4 ? ... )...)
CHOOSE CASE smth
CASE 34 TO 99, IS > 559, 1, 5, 33
x = 'fuck yeah!'
CASE ELSE
x = 'nani?!'
END CHOOSE
if (condition1 == true) // и ещё версия с условием if (condition1 == condition2)
{
return true;
}
else
{
retrun false;
}