Opérateurs de comparaison

Les opérateurs de comparaison, comme leur nom l'indique, vous permettent de comparer deux valeurs. Vous devriez également être intéressé par les tables de comparaisons de types car ils montrent des exemples de beaucoup de types de comparaisons.

Tableau 14-4. Opérateurs de comparaison

ExempleNomRésultat
$a == $bEgalTRUE si $a est égal à $b.
$a === $bIdentique TRUE si $a est égal à $b et qu'ils sont de même type (introduit en PHP 4).
$a != $bDifférentTRUE si $a est différent de $b.
$a <> $bDifférentTRUE si $a est différent de $b.
$a !== $bDifférent TRUE si $a est différent de $b ou bien qu'ils ne sont pas du même type. (introduit en PHP 4)
$a < $bPlus petit queTRUE si $a est strictement plus petit que $b.
$a > $bPlus grandTRUE si $a est strictement plus grand que $b.
$a <= $bInférieur ou égalTRUE si $a est plus petit ou égal à $b.
$a >= $bSupérieur ou égalTRUE si $a est plus grand ou égal à $b.

Si vous comparez un entier avec une chaîne, la chaîne est convertie en un nombre. Si vous comparez deux chaînes numériques, elles seront comparées en tant qu'entiers. Ces règles s'appliquent aussi à l'instruction switch.

<?php
var_dump
(0 == "a"); // 0 == 0 -> true
var_dump("1" == "01"); // 1 == 1 -> true

switch ("a") {
case
0:
    echo
"0";
    break;
case
"a": // jamais évalué parceque "a" est déjà trouvé avec 0
    
echo "a";
    break;
}
?>

Un autre opérateur conditionnel est l'opérateur ternaire (":?"), qui fonctionne comme en langage C.

Exemple 14-5. Opérateur ternaire

<?php
// Exemple d'utilisation pour l'opérateur ternaire
$action = (empty($_POST['action'])) ? 'default' : $_POST['action'];

// L'expression ci-dessus est identique à
if (empty($_POST['action'])) {
    
$action = 'default';
} else {
    
$action = $_POST['action'];
}
?>
L'expression (expr1) ? (expr2) : (expr3) renvoie la valeur de l'expression expr2 si l'expression expr1 est vraie, et l'expression expr3 si l'expression expr1 est fausse.

Voir aussi strcasecmp(), strcmp() les opérateurs de tableaux, et le chapitre sur les types.