Время чтения ~ 1 мин. / 38 просмотров / 0 комментариев / Январь 11, 2024, 13:40

В этом уроке вы узнаете о логическом операторе ИЛИ (OR) (||) в PHP и о том, как его использовать для создания сложных логических выражений.

Введение

Логический оператор ИЛИ (OR) принимает два операнда и возвращает true, если хотя бы один из них true; в противном случае возвращает false. Другими словами, логический оператор ИЛИ (OR) возвращает false, если оба операнда являются false.

Для представления логического оператора ИЛИ (OR), PHP использует ключевое слово or или || следующим образом:

expression1 or expression2

Или:

expression1 || expression2

Следующая таблица иллюстрирует результат оператора or:

expression1expression2expression1 || expression2
truetruetrue
truefalsetrue
falsetruetrue
falsefalsefalse

Обратите внимание, что or, Or и OR считаются идентичными, потому что ключевые слова в PHP нечувствительны к регистру.

Операторы || и or возвращают одинаковый результат. Единственное различие между операторами || и or заключается в их приоритетах. Оператор or имеет более высокий приоритет, чем оператор ||.

Примеры оператора ИЛИ (OR) в PHP

Предположим, вам нужно очистить кеш веб-сайта, если для флага $expired или $purge установлено значение true. Для этого вы можете использовать логический оператор ИЛИ (OR) следующим образом:

<?php

$expired = true;
$purged = false;

$clear_cache = $expired || $purged;

var_dump($clear_cache);

Вывод:

bool(true)

Поскольку $expired имеет значение true, результат оператора ИЛИ (OR) также является истинным.

Однако если вы измените $expired на false, результат будет false, как показано в следующем примере:

<?php

$expired = false;
$purged = false;

$clear_cache = $expired || $purged;

var_dump($clear_cache);

На практике логический оператор ИЛИ (OR) часто используется в условиях таких конструкций, как if, if-else, if-elseif, while и do-while.

Короткое замыкание в PHP

Когда первый операнд является true, логический оператор ИЛИ (OR) понимает, что результат также должен быть true. В этом случае второй операнд не вычисляется. Этот процесс называется коротким замыканием.

На практике часто встречается использование оператора or в следующем шаблоне:

function_call() || die(message)

Если функция function_call() возвращает true, это означает успешное выполнение. PHP не выполнит второй операнд, который представляет собой вызов функции die(). В противном случае PHP вызовет функцию die() с сообщением об ошибке.

Например:

<?php

function connect_to_db()
{
    return false;
}

connect_to_db() || die('Невозможно подключиться к базе данных.');

Вывод:

Невозможно подключиться к базе данных.

В этом примере функция connect_to_db() возвращает false, PHP вызывает функцию die(), которая отображает сообщение об ошибке.

Тонкости оператора ИЛИ (OR) в PHP

Взгляните на следующий пример:

<?php

$result = false or true;

var_dump($result);

Вывод:

bool(false)

В этом примере можно было бы ожидать, что $result будет true, потому что выражение false or true возвращает true. Однако это не так.

При интерпретировании следующего выражения:

$result = false or true;

PHP сначала рассчитывает $result = false, а затем оператор or, поскольку оператор = имеет более высокий приоритет, чем оператор or.

Обратите внимание, что у каждого оператора есть приоритет, и PHP будет вычислять операторы с более высоким приоритетом перед операторами с более низким приоритетом.

Технически это эквивалентно следующему:

($result = false) or true;

Таким образом, $result присваивается false.

Чтобы это исправить, вам нужно использовать круглые скобки, чтобы изменить порядок вычислений:

<?php

$result = (false or true);

var_dump($result);

Вывод:

bool(true)

Или вы можете использовать || оператор:

<?php

$result = false || true;
var_dump($result);

Вывод:

bool(true)

Поэтому рекомендуется всегда использовать || оператор вместо оператора or.

Подытожим

  • Используйте логический оператор ИЛИ (OR) (or, ||) в PHP, чтобы объединить два выражения и вернуть true, если хотя бы одно из выражений истинно; в противном случае возвращает false.
  • Логический оператор ИЛИ (OR) поддерживает короткое замыкание.
  • Используйте оператор || вместо оператора or.
Теги:
php
Оператор И (AND) - PHP
Оператор НЕ (NOT) - PHP
Оператор НЕ (NOT) - PHP
Январь 11, 2024, 17:05
В этом уроке вы узнаете, как использовать логический оператор отрицания НЕ (NOT) (!) в PHP для создания сложных логических выражений.
Жонглирование типами (type juggling) - PHP
Январь 09, 2024, 11:20
В этом уроке вы узнаете о жонглировании типами (type juggling) в PHP и о том, как оно работает.
Язык разметки Markdown с примерами
Декабрь 18, 2023, 20:55
Примеры использования языка разметки Markdown.
Синтаксис PHP
Декабрь 28, 2023, 23:29
В этом уроке вы изучите базовый синтаксис PHP, включая чувствительность к регистру, инструкции и пробелы.
Комментарии в PHP
Декабрь 30, 2023, 23:53
В этом уроке вы узнаете, как использовать комментарии в PHP для документирования вашего кода.