Логическая операция 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))?