Exemple | Nom | Résultat |
---|---|---|
$a and $b | ET (And) | TRUE si $a ET $b valent TRUE. |
$a or $b | OU (Or) | TRUE si $a OU $b valent TRUE. |
$a xor $b | XOR (Xor) | TRUE si $a OU $b est TRUE, mais pas les deux en même temps. |
! $a | NON (Not) | TRUE si $a n'est pas TRUE. |
$a && $b | ET (And) | TRUE si $a ET $b sont TRUE. |
$a || $b | OU (Or) | TRUE si $a OU $b est TRUE. |
La raison pour laquelle il existe deux types de "ET" et de "OU" est qu'ils ont des priorités différentes. Voir le paragraphe précédence d'opérateurs.
Exemple #1 Illustration des opérateurs logiques
<?php
// foo() ne sera jamais appeler car ces opérateurs s'annulent
$a = (false && foo());
$b = (true || foo());
$c = (false and foo());
$d = (true or foo());
// "||" a un précédence supérieure que "or"
$e = false || true; // $e se vera assigner à (false || true), ce qui est true
$f = false or true; // $f se vera assigner à false
var_dump($e, $f);
// "&&" a une précédence supérieure à "and"
$g = true && false; // $g se vera assigner à (true && false), ce qui est false
$h = true and false; // $h se vera assigner à true
var_dump($g, $h);
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
bool(true) bool(false) bool(false) bool(true)