Aide mémoire PHP : Comparaison de types

Arnaud Lemercier

Cet aide mémoire vous permet de connaître le résultat d'une comparaison de données entre différents types.

- Titre : Aide mémoire PHP : Comparaison de types

- Auteur : Arnaud Lemercier

- Parution : 9 août 2006

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2006 Arnaud Lemercier. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Introduction

- II. Aide mémoire

- II-A. Comparaison à l'aide de l'opérateur ==

- II-B. Comparaison à l'aide de l'opérateur ===

- II-C. empty(), is_null(), isset(), if(boolean))

- III. Conclusion

- IV. Remerciements

I - Introduction

Il vous est surement déjà arrivé de ne pas comprendre de quelle manière, une condition qui semble très banale, ne réagit pas comme elle le devrait ? Peut-être ne saviez-vous pas que les comparaisons entre types différents peuvent vous réserver des surprises ? Regardez plutôt :

$valeur = "chaîne en PHP";
if($valeur == 0) {
echo "Ma condition sera toujours validée";
}

Vous y croyez ? Et pourtant c'est vrai, une comparaison classique entre un nombre et une chaine de caractère renvoie true.

Voyons maintenant la comparaison stricte :

$valeur = "chaîne en PHP";
if($valeur === 0) {
echo "Vous ne verrez jamais apparaître ce texte";
}

La comparaison stricte permet de résoudre plus logiquement un cas comme celui-là.

II - Aide mémoire

II-A - Comparaison à l'aide de l'opérateur ==

==

TRUE

FALSE

1

0

-1

"1"

"0"

"-1"

NULL

array()

"php"

TRUE

TRUE

FALSE

TRUE

FALSE

TRUE

TRUE

FALSE

TRUE

FALSE

FALSE

TRUE

FALSE

FALSE

TRUE

FALSE

TRUE

FALSE

FALSE

TRUE

FALSE

TRUE

TRUE

FALSE

1

TRUE

FALSE

TRUE

FALSE

FALSE

TRUE

FALSE

FALSE

FALSE

FALSE

FALSE

0

FALSE

TRUE

FALSE

TRUE

FALSE

FALSE

TRUE

FALSE

TRUE

FALSE

TRUE

-1

TRUE

FALSE

FALSE

FALSE

TRUE

FALSE

FALSE

TRUE

FALSE

FALSE

FALSE

"1"

TRUE

FALSE

TRUE

FALSE

FALSE

TRUE

FALSE

FALSE

FALSE

FALSE

FALSE

"0"

FALSE

TRUE

FALSE

TRUE

FALSE

FALSE

TRUE

FALSE

FALSE

FALSE

FALSE

"-1"

TRUE

FALSE

FALSE

FALSE

TRUE

FALSE

FALSE

TRUE

FALSE

FALSE

FALSE

NULL

FALSE

TRUE

FALSE

TRUE

FALSE

FALSE

FALSE

FALSE

TRUE

TRUE

FALSE

array()

FALSE

TRUE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

TRUE

TRUE

FALSE

"php"

TRUE

FALSE

FALSE

TRUE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

TRUE

II-B - Comparaison à l'aide de l'opérateur ===

===

TRUE

FALSE

1

0

-1

"1"

"0"

"-1"

NULL

array()

"php"

TRUE

TRUE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

TRUE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

1

FALSE

FALSE

TRUE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

0

FALSE

FALSE

FALSE

TRUE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

-1

FALSE

FALSE

FALSE

FALSE

TRUE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

"1"

FALSE

FALSE

FALSE

FALSE

FALSE

TRUE

FALSE

FALSE

FALSE

FALSE

FALSE

"0"

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

TRUE

FALSE

FALSE

FALSE

FALSE

"-1"

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

TRUE

FALSE

FALSE

FALSE

NULL

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

TRUE

FALSE

FALSE

array()

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

TRUE

FALSE

"php"

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

FALSE

TRUE

II-C - empty(), is_null(), isset(), if(boolean))

Expression

gettype($x)

empty($x)

is_null($x)

isset($x)

boolean : if ($x)

$x = "";

string

TRUE

FALSE

TRUE

FALSE

$x = NULL

NULL

TRUE

TRUE

FALSE

FALSE

var $x;

NULL

TRUE

TRUE

FALSE

FALSE

$x is undefined

NULL

TRUE

TRUE

FALSE

FALSE

$x = array();

array

TRUE

FALSE

TRUE

FALSE

$x = false;

boolean

TRUE

FALSE

TRUE

FALSE

$x = true;

boolean

FALSE

FALSE

TRUE

TRUE

$x = 1;

integer

FALSE

FALSE

TRUE

TRUE

$x = 42;

integer

FALSE

FALSE

TRUE

TRUE

$x = 0;

integer

TRUE

FALSE

TRUE

FALSE

$x = -1;

integer

FALSE

FALSE

TRUE

TRUE

$x = "1";

string

FALSE

FALSE

TRUE

TRUE

$x = "0";

string

TRUE

FALSE

TRUE

FALSE

$x = "-1";

string

FALSE

FALSE

TRUE

TRUE

$x = "php";

string

FALSE

FALSE

TRUE

TRUE

$x = "true";

string

FALSE

FALSE

TRUE

TRUE

$x = "false";

string

FALSE

FALSE

TRUE

TRUE

III - Conclusion

Si vous programmez régulièrement en PHP, mieux vaut garder cette page dans vos favoris ou sur le coin de la table.

IV - Remerciements

Je remercie tout particulièrement Alexandra, pour comprendre mon travail et pour me soutenir dans tout ce que je fais. Je t'aime.
Je remercie Developpez.com pour donner aux développeurs la chance de s'exprimer, de s'entraider, et de s'épanouir.
Je remercie les relecteurs qui ont travaillé sur cette page.