Avatar ·

Quelle est la différence entre les opérateurs de comparaison == (égalité faible) et === (égalité stricte) en PHP ?

Bonjour à tous ! Je viens de commencer à apprendre PHP et je suis tombé sur une situation que je ne comprends pas. J'écris un script simple pour vérifier l'âge d'un utilisateur, et les résultats me laissent perplexe.

Voici mon code :

<?php
$age = "25";  // string
$legal_age = 25;  // number

if ($age == $legal_age) {
    echo "Âge correspond (==)";  // ceci s'affiche
}

if ($age === $legal_age) {
    echo "Âge correspond (===)";  // ceci NE s'affiche PAS
}
?>

Pourquoi le premier if fonctionne-t-il et pas le second ? Les deux valeurs semblent identiques — 25. J'ai lu dans le manuel qu'il y a == et ===, mais la différence n'est pas évidente pour moi. Quand utiliser quel opérateur ? Et que se passe-t-il si je les confonds accidentellement dans un projet réel ? Par exemple, lors de la vérification d'un mot de passe ou d'un ID provenant d'une base de données ?

Merci d'avance pour vos explications !

<<>>

Explication détaillée de la différence entre == et === en PHP

Excellente question ! C'est l'un des "pièges" les plus courants pour les débutants en PHP. Analysons cela.