Menu
Coddy logo textTech

É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.

challenge icon

Défi

Facile

Lisez 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 :

  1. Vérifiez si la valeur de chaîne est égale à l'entier en utilisant la comparaison lâche (==)
  2. Vérifiez si la valeur de chaîne est égale à l'entier en utilisant la comparaison stricte (===)
  3. Vérifiez si la valeur de chaîne n'est pas égale à l'entier en utilisant la comparaison lâche (!=)
  4. 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" == 42 est vrai (les valeurs sont égales après conversion de type)
  • "42" === 42 est faux (chaîne vs entier - types différents)
  • "42" != 42 est faux (les valeurs sont égales)
  • "42" !== 42 est 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 (!==)

?>
quiz iconTestez-vous

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

Entraînez-vous par vous-même : Compilateur PHP en ligne