Maison > Article > développement back-end > Quelle est la différence entre les opérateurs de comparaison d'égalité (== double signe égal) et d'identité (=== triple signe égal) de PHP ?
En PHP, les doubles égaux (==) et les triples égaux (===) sont des opérateurs de comparaison utilisés pour comparer les valeurs d'égalité. Cependant, ils diffèrent par leur comportement et la rigueur du processus de comparaison.
L'opérateur double égal vérifie l'égalité entre deux valeurs, mais effectue une coercition de type si les deux valeurs ont des types de données différents. Cela signifie que PHP essaiera de convertir la valeur en type générique avant d'effectuer la comparaison. Voici quelques points clés sur l’opérateur double égal :
Si deux valeurs ont le même type, cela se comporte comme l'opérateur triple égal (comparaison stricte).
Si deux valeurs ont des types différents, PHP tentera de les convertir en un type commun. Par exemple, si vous comparez un entier et une chaîne, PHP tentera de convertir la chaîne en entier.
Les chaînes numériques sont automatiquement converties en nombres par rapport aux nombres entiers ou aux nombres à virgule flottante.
Les valeurs booléennes sont comparées sous forme d'entiers (vrai vaut 1, faux vaut 0).
Null est traité comme égal à la chaîne vide, au tableau vide ou à zéro.
Les tableaux et les objets sont comparés non pas par leur contenu, mais par leur identité.
<?php $value1 = 5; $value2 = "5"; if ($value1 == $value2) { echo "Equal"; } else { echo "Not Equal"; } ?>
Equal
L'opérateur de double égalité effectue une coercition de type, donc la chaîne "5" est convertie en entier 5 et la comparaison renvoie vrai.
<?php $value1 = 5; $value2 = "5.0"; if ($value1 == $value2) { echo "Equal"; } else { echo "Not Equal"; } ?>
Equal
L'opérateur double égal effectue une coercition de type. La chaîne « 5.0 » est convertie en nombre à virgule flottante 5.0 et la comparaison renvoie vrai.
L'opérateur triple égalité, également connu sous le nom d'opérateur d'identité, effectue une comparaison stricte entre deux valeurs. Il vérifie l’égalité des valeurs et des types sans effectuer aucune coercition de type. L'opérateur triple égal est plus strict et est généralement considéré comme plus sûr à utiliser car il évite les conversions de type inattendues ou inattendues. Voici quelques points clés sur l’opérateur triple égal :
Il renvoie vrai uniquement si les deux valeurs comparées ont le même type et la même valeur.
L'opérateur renvoie false si les types sont différents ou si une valeur ne peut pas être convertie en type de l'autre valeur.
Aucune conversion de type ou conversion n'est effectuée avant la comparaison.
Ceci est généralement préféré lors de la comparaison de valeurs où l'intégrité du type est importante.
<?php $value1 = 5; $value2 = "5"; if ($value1 === $value2) { echo "Equal"; } else { echo "Not Equal"; } ?>
Not Equal
L'opérateur triple égal effectue une comparaison stricte, en tenant compte à la fois de la valeur et du type. Puisque $value1 est un entier et $value2 est une chaîne, ils ne sont pas considérés comme égaux.
<?php $value1 = 10; $value2 = 10; if ($value1 === $value2) { echo "Equal"; } else { echo "Not Equal"; } ?>
Equal
Étant donné que $value1 et $value2 sont tous deux des entiers avec la même valeur 10, une comparaison stricte utilisant === renvoie vrai et "Equal" est renvoyé en sortie.
En PHP, le comportement de comparaison des opérateurs double égal (==) et triple égal (===) est différent. Double égal applique une vérification d'égalité lâche par type, tentant de convertir la valeur en un type commun avant de comparer. En revanche, triple égal effectue une vérification d'égalité stricte sans contrainte de type, en tenant compte à la fois de la valeur et du type. Le signe du troisième niveau est généralement privilégié pour sa fiabilité et sa prévisibilité. Cela permet d'éviter un comportement inattendu provoqué par des conversions de type involontaires. Comprendre ces différences permet aux développeurs de choisir l'opérateur approprié en fonction des exigences de comparaison souhaitées et de maintenir l'exactitude du code.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!