Operatori logici

Operatori logici
Esempio Nome Risultato
$a and $b And true se $a e $b sono entrambe true.
$a or $b Or true se $a o $b è true.
$a xor $b Xor true se $a o $b è true, ma non entrambe.
! $a Not true se $a non è true.
$a && $b And true se $a e $b sono entrambe true.
$a || $b Or true se $a o $b è true.

La ragione per le due differenti variazioni degli operatori "and" e "or" è che operano con differenti precedenze. (Vedere Precedenza degli operatori.)

Example #1 Dimostrazione degli operatori logici

<?php

// --------------------
// foo() non viene mai chiamata in quanto gli operatori sono in corto-circuito

$a = (false && foo());
$b = (true || foo());
$c = (false and foo());
$d = (true or foo());

// --------------------
// "||" ha una precedenza maggiore rispetto a "or"

// Il risultato dell'espressione (false || true) è assegnato a $e
// Funziona come: ($e = (false || true))
$e = false || true;

// La costante false è assegnata a $f prima che l'operazione "or" avvenga
// Funziona come: (($f = false) or true)
$f = false or true;

var_dump($e, $f);

// --------------------
// "&&" ha una precesenza maggiore rispetto a "and"

// Il risultato dell'espressione (true && false) è assegnato a $g
// Funziona come: ($g = (true && false))
$g = true && false;

// La costante true è assegnata a $h prima che l'operazione "and" avvenga
// Funziona come: (($h = true) and false)
$h = true and false;

var_dump($g, $h);
?>

Il precedente esempio visualizzerà qualcosa simile a:

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