Les opérateurs logiques
Exemple | Nom | Résultat |
---|---|---|
$a and $b | And (Et) | TRUE si $a ET $b valent TRUE . |
$a or $b | Or (Ou) | TRUE si $a OU $b valent TRUE . |
$a xor $b | XOR |
TRUE si $a OU $b est TRUE ,
mais pas les deux en même temps.
|
! $a | Not (Non) | TRUE si $a n'est pas TRUE . |
$a && $b | And (Et) | TRUE si $a ET $b sont TRUE . |
$a || $b | Or (Ou) | 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 appelée 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 à "or"
- // Le résultat de l'expression (false || true) est affecté à $e
- // Agit comme : ($e = (false || true))
- $e = false || true;
- // La constante false est affectée à $f, puis, true est ignoré
- // Agit comme : (($f = false) or true)
- $f = false or true;
- var_dump($e, $f);
- // --------------------
- // "&&" a un précédence supérieure à "and"
- // Le résultat de l'expression (true && false) est affecté à $g
- // Agit comme : ($g = (true && false))
- $g = true && false;
- // La constante true est affectée à $h, puis, false est ignoré
- // Agit comme : (($h = true) and false)
- $h = true and false;
- var_dump($g, $h);
- ?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
bool(true) bool(false) bool(false) bool(true)