Вы, наверное, уже знаете основные варианты записи условия в PHP if, else, elseif. Используя эти условные операторы, можно проверить массу возможных вариантов. Но иногда бывает, что нужно проверить условие только среди 2-3 возможных вариантов. В этом случае велик соблазн максимально уменьшить объем кода. Возможно, что для некоторых программистов сокращенные записи условий добавят больше путаницы, но иногда они бывают полезны. В сегодняшней статье мы вкратце рассмотрим синтаксис и примеры сокращенной записи условий в PHP.
Проверка условия с использованием операторов if else выглядит так:
if ($condition) {
$result = 'Hello';
} else {
$result = 'World';
}
В PHP для сокращенной записи условия используется тернарный оператор, который заменяет сильно распространенное использование структуры if {} else {}. Вместо того, чтобы писать эту длинную структуру, вы можете использовать тернарный оператор так:
$result = $condition ? 'Hello' : 'World';
Если переменная $condition возвращает true, тогда переменной $result будет присвоен левый операнд (по левую сторону от двоеточия, т.е., Hello). Если условие ложное, тогда будет использоваться правый операнд (по правую сторону от двоеточия, т.е., World).
Интересный факт: название тернарного оператора фактически означает «оператор, который действует на три операнда» (другими словами – троичный оператор). Операнд – это термин, который используется для обозначения частей условного выражения. Тернарный оператор – единственный оператор в PHP, для которого требуются три операнда: условие, истинный и ложный результат.
Тернарный оператор будет использовать свой левый операнд, когда условие оценивается как истинное. Это может быть строка, целое число, логическое значение и т.д. Правый операнд будет использоваться для так называемых «ложных значений». Примерами могут быть 0 или ‘0’, пустой массив или строка, null, неопределенная или неназначенная переменная и, конечно, само значение false. Все эти значения заставят тернарный оператор использовать свой правый операнд.
Тернарное выражение вычисляется слева направо.
Тернарные операторы могут быть вложенными, но лучше в этом случае использовать скобки, либо же конструкцию if else.
Начиная с PHP 5.3 версии, можно опустить левый операнд, что приведет к еще более короткой записи:
$result = $one ?: 'Hello, world!';
В данном случае значение $result будет значением $one, если только $one не возвращает false, и в этом случае будет использована строка Hello, world!.
Вы можете написать верхнее выражение и с использованием обычного тернарного оператора, тогда оно будет выглядеть примерно так:
$result = $condition ? $condition : 'Hello, world!';
Вот и все на сегодня. Спасибо за внимание!
WordPress годами был непревзойденным "монолитом": он отвечал и за удобную админ-панель, и за хранение данных,…
В мире веб-серверов часто говорят о противостоянии Nginx vs Apache. Но что, если бы я…
Когда я начинал свой путь в веб-разработке, вопрос "какой веб-сервер использовать?" практически не стоял. Ответ…
Когда речь заходит о веб-серверах, два имени всегда на слуху: Apache и Nginx. Apache —…
В мире веб-разработки мы постоянно сталкиваемся с проблемой: "А у меня на компьютере все работает!".…
На заре моей карьеры веб-разработчика все было относительно просто: установил локальный сервер (помните Denwer?), положил…