Логические операторы php

Главная / Разработка / php / Логические операторы php
ПримерЗначениеРезультатАссоциативностьПриоритет
(порядок выполнения)
! $aОтрицаниеTRUE если $a не TRUEправая1
$a && $bИTRUE если и $a, и $b TRUEлевая2
$a || $bИЛИTRUE если или $a, или $b TRUEлевая3
$a and $bИTRUE если и $a, и $b TRUEлевая4
$a xor $bИсключающее ИЛИTRUE если $a, или $b TRUE, но не обалевая5
$a or $bИЛИTRUE если или $a, или $b TRUEлевая6

Порядок выполнения операторов

Приоритет оператора определяет, насколько "тесно" он связывает между собой два выражения. Если операторы имеют равный приоритет, то их группирование определяется их ассоциативностью. Приоритет и ассоциативность оператора определяет только группировку выражений, и не определяет порядок выполнения. PHP (в целом) не описывает в каком порядке выражение выполняется, и следует избегать код, опирающийся на порядок выполнения, так как поведение может меняться между версиями PHP в зависимости от окружающего кода.

Примеры

<?php

$prm = !true;// Результат выражения (!true) присваивается переменной $prm (в данном случае bool(false));

$prm = !false;// Результат выражения (!false) присваивается переменной $prm (в данном случае 1 или bool(true));

$prm = true && false;// Результат выражения (true && false) присваивается переменной $prm (в данном случае bool(false));

$prm = false || true;// Результат выражения (false || true) присваивается переменной $prm (в данном случае 1 или bool(true));

$prm = true and false;// Результат выражения (true and false) = константа true присваивается $prm, а затем значение false игнорируется (значение переменной $prm 1 или bool(true));

$prm = false xor true;// Результат выражения (false xor true) присваивается переменной $prm (в данном случае bool(false));

$prm = true xor false;// Результат выражения (false or true) присваивается переменной $prm (в данном случае 1 или bool(true));

$prm = false or true;// Результат выражения (false or true) присваивается переменной $prm (значение переменной $prm 1 или bool(true));

$prm = true or false;// Результат выражения (true or false) присваивается переменной $prm (значение переменной $prm bool(false));

?>