Mantıksal İşleçler

Mantıksal İşleçler
ÖrnekİsimSonuç
$a and $bVe$a ve $b her ikisi de doğruysa sonuç doğrudur (true).
$a or $bVeya$a veya $b doğruysa sonuç doğrudur.
$a xor $bAyrıcalıklı Veya$a veya $b doğruysa sonuç doğru, her ikiside doğruysa sonuç yanlıştır (false).
! $aDeğil$a doğru değilse sonuç doğrudur.
$a && $bVe$a ve $b her ikisi de doğruysa sonuç doğrudur.
$a || $bVeya$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) 
To Top