Оператор И (AND) - PHP
В этом уроке вы узнаете о логическом операторе И (AND) в PHP и как использовать его для создания сложных логических выражений.
Введение
Логический оператор AND принимает два операнда и возвращает true
, если оба операнда истинны; в противном случае возвращает false
.
В PHP для представления логического оператора И (AND) используется ключевое слово and
:
expression1 and expression2
Следующая таблица иллюстрирует результат действия оператора and
:
expression1 | expression2 | expression1 and expression2 |
---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | false |
Поскольку ключевые слова PHP нечувствительны к регистру, операторы AND
и and
одинаковы:
expression1 AND expression2
По соглашению оператор and
следует использовать в нижнем регистре.
Помимо ключевого слова and
, PHP использует &&
в качестве логического оператора И (AND):
expression1 && expression2
Операторы &&
и and
возвращают одинаковый результат. Единственное различие между ними заключается в их приоритетах.
Оператор and
имеет более высокий приоритет, чем оператор &&
. Приоритет оператора определяет порядок вычислений в PHP.
Примеры оператора И (AND) в PHP
Предположим, вы хотите предоставить скидку клиентам, купившим более трех товаров по цене выше 99. Чтобы определить, получат ли клиенты скидку или нет, вы можете использовать логический оператор AND следующим образом:
<?php
$price = 100;
$qty = 5;
$discounted = $qty > 3 && $price > 99;
var_dump($discounted);
Вывод:
bool(true)
Если вы измените значение $qty
на 2
, значение $discounted
будет ложным false
, например:
<?php
$price = 100;
$qty = 2;
$discounted = $qty > 3 && $price > 99;
var_dump($discounted);
На практике вы будете использовать логический оператор И в конструкциях if, if-else, if-elseif, while и do-while.
Короткое замыкание в PHP
Когда значение первого операнда является ложным, логический оператор AND понимает, что результат также должен быть ложным. В этом случае он не вычисляет второй операнд. Этот процесс называется коротким замыканием.
См. следующий пример:
<?php
$debug = false;
$debug && print('Демонстрация оператора И в PHP!');
Как это работает:
- Вначале определяется переменная
$debug
и инициализируется значениемfalse
. - Затем используется логический оператор AND для объединения переменной
$debug
иprint()
. Поскольку$debug
имеет значениеfalse
, PHP не вычисляет вызов функцииprint()
.
Если вы измените $debug
на true
, то увидите сообщение в выводе:
<?php
$debug = true;
$debug && print('Демонстрация оператора И в PHP!');
Вывод:
Демонстрация оператора И в PHP!
Подытожим
- Используйте логический оператор И (AND) в PHP (
and
,&&
), чтобы объединить два логических выражения и вернутьtrue
, если оба выражения истинны; в противном случае, возвращаетсяfalse
. - Логический оператор И (AND) поддерживает короткое замыкание.