Логическая операция NOT (НЕ) определена следующим образом:
| X | NOT X |
|---|---|
| FALSE | TRUE |
| TRUE | FALSE |
Логическая операция AND (И) определена следующим образом:
| X | Y | X AND Y |
|---|---|---|
| FALSE | FALSE | FALSE |
| FALSE | TRUE | FALSE |
| TRUE | FALSE | FALSE |
| TRUE | TRUE | TRUE |
Логическая операция OR (ИЛИ) определена следующим образом:
| X | Y | X OR Y |
|---|---|---|
| FALSE | FALSE | FALSE |
| FALSE | TRUE | TRUE |
| TRUE | FALSE | TRUE |
| TRUE | TRUE | TRUE |
Соответствующие логические операторы PHP:
| Булева операция | Оператор PHP | Пример |
|---|---|---|
| NOT | ! | NOT(x) это !x |
| AND | && | (b>0)AND(b<5) это (b>0)&&(b<5) |
| OR | || | (a<0)OR(a>5) это (a<0)||(a>5) |
Возможно совместное использование нескольких логических операторов. Необходимо помнить, что оператор ! (NOT) выполняется до операторов || (OR) и && (AND). Оператор && (AND) выполнятся до оператора || (OR). Оператор || (OR) выполняется после оператора && (AND).
Примеры
Значение !(1&&0) равно TRUE. Так как приоритет скобок выше приоритета логических операций, поэтому в начале выполняется операция внутри скобок и дает 0 (FALSE) (см. таблицу AND), затем выполняется операция !0 и она равна TRUE.
Значение !(1||1&&0) равно FALSE. Приоритет AND выше OR.
Значение !((1||1)&&0) равно TRUE. В начале выполняется операция внутри скобок.
Контрольные вопросы и задания
- Какие еще логические операторы поддерживает PHP (кроме приведенных выше)?
- Чему равно значение логического выражения (1||!1)&&(0||!1)?
- Чему равно значение логического выражения !(!(1||0)&&(0||!1))?