Operatori
PHP Manual

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 e quindi true è ignorato
// 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 e quindi false è ignorato
// 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)

Operatori
PHP Manual