| 4.6 Les opérateurs
 4 Référence du langage
 Manuel PHP
 
 . La précédence des opérateurs
 . Les opérateurs arithmétiques
 . Les opérateurs d'assignation
 . Opérateurs sur les bits
 ->Opérateurs de comparaison
 . Opérateur de contrôle d'erreur
 . Opérateur d'exécution
 . Opérateurs d'incrémentation et décrémentation
 . Les opérateurs logiques
 . Opérateurs de chaînes
 . Opérateurs de tableaux
 . Opérateur de type
 
 
 | 
  4.6.5 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.
    
| Exemple | Nom | Résultat |  
| $a == $b | Egal | TRUE
 si 
$a
 est égal à
       
$b
. |  
| $a === $b | Identique | TRUE
 si 
$a
 est égal à 
$b
 et qu'ils sont
        de même type (introduit en PHP 4). |  
| $a != $b | Différent | TRUE
 si 
$a
 est différent de
       
$b
. |  
| $a <> $b | Différent | TRUE
 si 
$a
 est différent de
       
$b
. |  
| $a !== $b | Diffé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 < $b | Plus petit que | TRUE
 si 
$a
 est strictement plus petit que
       
$b
. |  
| $a > $b | Plus grand | TRUE
 si 
$a
 est strictement plus grand que
       
$b
. |  
| $a <= $b | Inférieur ou égal | TRUE
 si 
$a
 est plus petit ou égal à
       
$b
. |  
| $a >= $b | Supérieur ou égal | TRUE
 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 .
     
 | 
<?phpvar_dump(0 == "a"); // 0 == 0 -> true
 var_dump("1" == "01"); // 1 == 1 -> true
 
 switch ("a") {
 case 0:
 echo "0";
 break;
 case "a": // jamais évalué parce que "a" est déjà trouvé avec 0
 echo "a";
 break;
 }
 ?>
 | 
 
    Pour les différents types, la comparaison est faite en suivant
    la table suivante (dans l'ordre).
    
| Type de l'opérande 1 | Type de l'opérande 2 | Résultat |  
| null
 ou 
chaîne de caractères | string | Convertit 
NULL
 en "", comparaison numérique ou lexicale |  
| booléen
 ou 
null | N'importe quoi | Convertit en 
booléen
, 
FALSE
 < 
TRUE |  
| objet | objet | Les classes internes peuvent définir leur propre comparaison, différentes
        classes ne sont pas comparables, les mêmes classes - la comparaison des propriétés
        se fait de la même façon que pour les tableaux (PHP 4), PHP 5 a son propre
        comportement |  
| chaîne de caractères
, 
ressource
 ou 
nombre | chaîne de caractères
, 
ressource
 ou 
nombre | Transforme les chaînes de caractères et les ressources en nombresTranslate strings and resources to numbers, maths habituelles |  
| tableaux | tableaux | Le tableau avec le moins de membres est plus petit, si la clé de l'opérande 1
        n'est pas trouvée dans l'opérande 2, alors les tableaux ne sont pas comparables, sinon -
        comparaison valeur par valeur (voir l'exemple suivant) |  
| tableau | N'importe quoi | Le 
tableau
 est toujours plus grand |  
| objet | N'importe quoi | L'
objet
 est toujours plus grand |  
 | Transcription des comparaisons standarts des tableaux |  | 
<?php// Les tableaux sont comparés comme ceci avec les opérateurs standarts de comparaison
 function standard_array_compare($op1, $op2)
 {
 if (count($op1) < count($op2)) {
 return -1; // $op1 < $op2
 } elseif (count($op1) > count($op2)) {
 return 1; // $op1 > $op2
 }
 foreach ($op1 as $key => $val) {
 if (!array_key_exists($key, $op2)) {
 return null; // incomparable
 } elseif ($val < $op2[$key]) {
 return -1;
 } elseif ($val > $op2[$key]) {
 return 1;
 }
 }
 return 0; // $op1 == $op2
 }
 ?>
 | 
 
    Voir aussi
     
strcasecmp
 ,
     
strcmp
 les opérateurs de tableaux ,
    et le chapitre sur les  types .
    Sommaire : |