Уроки PHP – Сокращенная запись условия if else (тернарный оператор)
Вы, наверное, уже знаете основные варианты записи условия в PHP if
, else
, elseif
. Используя эти условные операторы, можно проверить массу возможных вариантов. Но иногда бывает, что нужно проверить условие только среди 2-3 возможных вариантов. В этом случае велик соблазн максимально уменьшить объем кода. Возможно, что для некоторых программистов сокращенные записи условий добавят больше путаницы, но иногда они бывают полезны. В сегодняшней статье мы вкратце рассмотрим синтаксис и примеры сокращенной записи условий в PHP.
Синтаксис условного оператора if else
Проверка условия с использованием операторов if else
выглядит так:
if ($condition) { $result = 'Hello'; } else { $result = 'World'; }
Сокращенная запись условия в PHP
В 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!';
Вот и все на сегодня. Спасибо за внимание!