Égalité et identité
Fait partie de la section Fondamentaux du Journey PHP de Coddy. Leçon 24 sur 71.
PHP fournit deux façons de vérifier si les valeurs sont égales : l'opérateur d'égalité (==) et l'opérateur d'identité (===). Comprendre la différence est crucial pour écrire du code fiable.
L'opérateur d'égalité (==) compare les valeurs après les avoir converties au même type. Cela s'appelle « comparaison lâche » :
<?php
var_dump(5 == "5"); // bool(true) - chaîne convertie en nombre
var_dump(0 == false); // bool(true) - les deux deviennent 0
var_dump(1 == true); // bool(true) - les deux deviennent 1
?>L'opérateur d'identité (===) compare à la fois la valeur et le type. Aucune conversion ne se produit, donc les deux doivent correspondre exactement :
<?php
var_dump(5 === "5"); // bool(false) - int vs string
var_dump(5 === 5); // bool(true) - same type and value
var_dump(0 === false); // bool(false) - int vs bool
?>Pour les comparaisons d'inégalité, utilisez != (non stricte) ou !== (stricte) :
<?php
var_dump(5 != "5"); // bool(false) - les valeurs sont égales
var_dump(5 !== "5"); // bool(true) - les types diffèrent
?>En tant que meilleure pratique, préférez === et !== pour éviter les surprises inattendues de conversion de type.
Défi
FacileLisez deux valeurs depuis l'entrée : un nombre (sous forme de chaîne) et un entier.
Utilisez les opérateurs d'égalité et d'identité pour évaluer les comparaisons suivantes et affichez le résultat de chacune en utilisant var_dump(), chacune sur une nouvelle ligne :
- Vérifiez si la valeur de chaîne est égale à l'entier en utilisant la comparaison lâche (
==) - Vérifiez si la valeur de chaîne est égale à l'entier en utilisant la comparaison stricte (
===) - Vérifiez si la valeur de chaîne n'est pas égale à l'entier en utilisant la comparaison lâche (
!=) - Vérifiez si la valeur de chaîne n'est pas égale à l'entier en utilisant la comparaison stricte (
!==)
Remarque : Gardez la première valeur comme une chaîne (ne la convertissez pas). Convertissez la seconde valeur en entier.
Exemple :
Si les entrées sont 42 et 42, la sortie devrait être :
bool(true)
bool(false)
bool(false)
bool(true)Explication :
"42" == 42est vrai (les valeurs sont égales après conversion de type)"42" === 42est faux (chaîne vs entier - types différents)"42" != 42est faux (les valeurs sont égales)"42" !== 42est vrai (les types sont différents)
Essayez vous-même
<?php
// Lire l'entrée
$stringValue = trim(fgets(STDIN));
$intValue = intval(trim(fgets(STDIN)));
// TODO: Écrivez votre code ci-dessous
// Utilisez var_dump() pour imprimer le résultat de chaque comparaison sur une nouvelle ligne :
// 1. Égalité lâche (==)
// 2. Égalité stricte (===)
// 3. Inégalité lâche (!=)
// 4. Inégalité stricte (!==)
?>Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Opérateurs de comparaison et logiques
Opérateurs de comparaisonÉgalité et identitéOpérateurs logiques — Partie 1Opérateurs logiques — Partie 2Récapitulatif — Logique simple2Variables et types de données
NombresChaînes et guillemetsBooléensConventions de nommageRécapitulatif - initialisation des variablesVariables videsConcaténation de chaînesObtenir une saisie utilisateurConvertir vers différents types5Logique conditionnelle
Instruction ifIf - ElseOpérateur ternaireOpérateur de coalescence nulleInstruction switchRécapitulatif - Prendre des décisions3Opérateurs de base
Opérateurs arithmétiquesOpérateur moduloOpérateur d’exponentiationAffectation combinéeIncrémentation/DécrémentationPriorité des opérateursRécapitulatif - Calculs simplesOpérateurs sur les chaînesEntraînez-vous par vous-même : Compilateur PHP en ligne