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


Наша группа в телеграмм для обмена идеями, проектами, мыслями, людьми в сфере ИТ г.Ростова-на-Дону: @it_rostov
Логические операторы
Пример Название Результат
$a and $bИTRUE если и $a, и $b TRUE.
$a or $bИлиTRUE если или $a, или $b TRUE.
$a xor $bИсключающее илиTRUE если $a, или $b TRUE, но не оба.
! $aОтрицаниеTRUE если $a не TRUE.
$a && $bИTRUE если и $a, и $b TRUE.
$a || $bИлиTRUE если или $a, или $b TRUE.

Смысл двух разных вариантов для операторов "and" и "or" в том, что они работают с различными приоритетами (смотрите таблицу Приоритет выполнения операторов).

Пример #1 Объяснение логических операторов

// --------------------
// foo() никогда не буде вызвана, так как эти операторы являются шунтирующими (short-circuit)
$a = (false && foo());
$b = (true  || foo());
$c = (false and foo());
$d = (true  or  foo());
// --------------------
// "||" имеет больший приоритет, чем "or"
// Результат выражения (false || true) присваивается переменной $e
// Действует как: ($e = (false || true))
$e = false || true;
// Константа false присваивается $f, а затем значение true игнорируется
// Действует как: (($f = false) or true)
$f = false or true;
var_dump($e, $f);
// --------------------
// "&&" имеет больший приоритет, чем "and"
// Результат выражения (true && false) присваивается переменной $g
// Действует как: ($g = (true && false))
$g = true && false;
// Константа true присваивается $h, а затем значение false игнорируется
// Действует как: (($h = true) and false)
$h = true and false;
var_dump($g, $h);

Результатом выполнения данного примера будет что-то подобное:


bool(true)
bool(false)
bool(false)
bool(true)

User Contributed Notes 9 notes



26
Lawrence6 years ago


10
Andrew6 years ago
> your_function() or return "whatever";
>


7
phpnet at zc dot webhop dot net1 year ago
($a = $_GET['var']) || ($a = 'a default');


5
momrom at freenet dot de4 years ago
function a($x) { echo 'Expression '; return $x; }
function b($x) { echo 'is '; return $x; }
function c($x) { echo $x ? 'true.' : 'false.' ;}
c( a( false ) and b( true ) ); // Output: Expression false.
c( min( a( false ), b( true ) ) ); // Output: Expression is false.
c( a( true ) or b( true ) ); // Output: Expression true.
c( max( a( true ), b( true ) ) ); // Output: Expression is true.


4
dartello at gmail dot com11 months ago
$a = 1;
$t = !$a;
var_dump($t);


2
brian at zickzickzick dot com4 months ago
    // Defaults --
    //If you're trying to gat 'Jack' from:
    $jack = false or 'Jack'; 
    // Try:
    $jack = false or $jack = 'Jack';
    //The other option is:
    $jack = false ? false : 'Jack';


3
peter dot kutak at NOSPAM dot gmail dot com6 years ago
// do_that() is executed only if do_this() returns false
if($something) do_this() or do_that();
// $b is assigned to $b, do_that() is executed if $b is false
if($something) $a = $b or do_that();
// do_that() is executed only if do_this() returns true
if($something) do_this() and do_that();
// $b is assigned to $b, do_that() is executed if $b is true
if($something) $a = $b and do_that();
// both do_that() and do_this() are executed..
if($something) do_this() xor do_that();
// .. so the behaviour is same as:
if($something) {
    do_this();
    do_that();
}




Смотрите также:
Описание на ru2.php.net
Описание на php.ru

.

Популярное:


Содержание: