Avatar ·

Différence entre == et === en PHP

Différence entre == et === en PHP : comportement étrange lors de la comparaison d'une chaîne et d'un nombre

Bonjour à tous ! Je suis débutant en PHP et j'ai rencontré un comportement inattendu des opérateurs de comparaison. J'essaie de comprendre la différence entre == (égalité non stricte) et === (égalité stricte).

J'ai un code simple :

$a = '123abc';
$b = 123;

var_dump($a == $b);  // Résultat : true
var_dump($a === $b); // Résultat : false

Je m'attendais à ce que les deux comparaisons retournent false, car les types sont différents (chaîne et nombre). Mais == retourne true. Pourquoi cela se produit-il ? J'ai lu que == effectue une conversion de type, mais je ne comprends pas comment la chaîne '123abc' peut être égale au nombre 123.

Ce que j'ai déjà essayé :

  • J'ai vérifié avec différentes chaînes (par exemple, 'abc123' — là == a retourné false)
  • J'ai lu la documentation PHP sur les opérateurs de comparaison
  • J'ai expérimenté avec d'autres types (booléens, null)

Pouvez-vous expliquer avec un exemple clair quand utiliser == et quand utiliser === ? Et pourquoi dans mon cas le