Mantıksal İşleçler

Mantıksal İşleçler
Örnek İsim Sonuç
$a and $b Ve $a ve $b her ikisi de doğruysa sonuç doğrudur (TRUE).
$a or $b Veya $a veya $b doğruysa sonuç doğrudur.
$a xor $b Ayrıcalıklı Veya $a veya $b doğruysa sonuç doğru, her ikiside doğruysa sonuç yanlıştır (FALSE).
! $a Değil $a doğru değilse sonuç doğrudur.
$a && $b Ve $a ve $b her ikisi de doğruysa sonuç doğrudur.
$a || $b Veya $a veya $b doğruysa sonuç doğrudur.

Ve, Veya işleçlerinin iki farklı türü olmasının sebebi önceliklerinin farklı oluşudur. (Bakınız: İşleç Önceliği.)

Örnek 1 - Örneklerle mantıksal işleçler

<?php
// --------------------
// Aşağıdaki ifadelerde ilk terim sonucu belirlediğinden ikinci
// terime hiç bakılmayacak, yani foo() işlevi hiç çağrılmayacaktır.
$a = (false && foo());
$b = (true  || foo());
$c = (false and foo());
$d = (true  or  foo());

// --------------------
// "||" işlecinin önceliği "or" işlecinden yüksektir.
// İfadenin sonucu $e'ye atanır (false || true)
// Tıpkı şöyle: ($e = (false || true))
$e false || true;

// "or" işleminden önce false sabiti $f'ye atanır ve true yoksayılır
// Tıpkı böyle: (($f = false) or true)
$f false or true;

var_dump($e$f);

// --------------------
// "&&" işlecinin önceliği "and" işlecinden yüksektir.
// İfadenin sonucu $g'ye atanır (true && false)
// Tıpkı böyle: ($g = (true && false))
$g true && false;

// "and" işleminden önce true sabiti $h'ya atanır ve false yoksayılır
// Tıpkı böyle: (($h = true) and false)
$h true and false;

var_dump($g$h);
?>

Yukarıdaki örnek şuna benzer bir çıktı üretir:

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