Les opérateurs
PHP Manual

Les opérateurs logiques

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 avant que l'opération "or" apparaisse
// 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 avant que l'opération "and" apparaisse
// 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)

Les opérateurs
PHP Manual