Opérateurs sur les bits
<<<
Opérateurs de comparaison Opérateur de contrôle d'erreur
>>>

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 .

<?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é 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 :

<< Opérateurs de comparaison >>
Opérateurs sur les bits Les opérateurs Opérateur de contrôle d'erreur