Оглавление
Примеры использования оператора OR в PHPСокращённое вычисление (short-circuiting)Особенности оператора OR в PHPИтог
Оператор OR в PHP
Оператор логического ИЛИ принимает два операнда и возвращает
true, если хотя бы один из операндов равен true; в противном случае возвращается false. То есть, оператор логического ИЛИ возвращает false только если оба операнда равны false.В PHP для представления оператора логического ИЛИ можно использовать ключевое слово
or или оператор ||:Таблица истинности оператора OR:
Обратите внимание, что варианты
or, Or и OR эквивалентны, так как ключевые слова PHP не чувствительны к регистру.Операторы
|| и or возвращают одинаковый результат. Единственное различие между ними - приоритет выполнения: у оператора or приоритет выше, чем у ||.Примеры использования оператора OR в PHP
Допустим, вам нужно очистить кэш сайта, если хотя бы одна из переменных
$expired или $purge равна true. Для этого можно использовать оператор логического ИЛИ:Поскольку
$expired равно true, результат оператора ИЛИ также будет true.Если изменить значение
$expired на false:На практике оператор логического ИЛИ часто используется в конструкциях
if, if-else, if-elseif, а также в циклах while и do-while.Сокращённое вычисление (short-circuiting)
Если первый операнд оператора ИЛИ равен
true, PHP не вычисляет второй операнд, так как результат уже определён. Это называется сокращённым вычислением.Типичный пример использования:
Если
function_call() возвращает true, функция die() не вызывается. В противном случае вызывается die() с сообщением об ошибке.Пример:
Результат:
В этом примере функция возвращает
false, поэтому вызывается die().Особенности оператора OR в PHP
Рассмотрим следующий пример:
Вы могли ожидать, что
$result будет равно true, но это не так. Причина - приоритет операторов: оператор присваивания (=) имеет более высокий приоритет, чем оператор or. Поэтому сначала выполняется присваивание, а затем логическое ИЛИ.Технически это эквивалентно:
Поэтому
$result получает значение false.Чтобы получить ожидаемый результат, используйте скобки:
Или используйте оператор
||:Поэтому рекомендуется использовать оператор
|| вместо or.Итог
- Используйте оператор PHP OR (
or,||) для объединения двух выражений: результат будетtrue, если хотя бы одно из выражений истинно. - Оператор логического ИЛИ поддерживает сокращённое вычисление.
- Рекомендуется использовать оператор
||вместо or для избежания ошибок, связанных с приоритетом операторов.

