Diferencia entre == y === en PHP
Diferencia entre == y === en PHP: comportamiento extraño al comparar string y número
¡Hola a todos! Soy nuevo en PHP y me encontré con un comportamiento inesperado de los operadores de comparación. Estoy tratando de entender la diferencia entre == (igualdad no estricta) y === (igualdad estricta).
Tengo un código simple:
$a = '123abc';\n$b = 123;\n\nvar_dump($a == $b); // Resultado: true\nvar_dump($a === $b); // Resultado: falseEsperaba que ambas comparaciones devolvieran false, porque los tipos son diferentes (string y número). Pero == devuelve true. ¿Por qué sucede esto? Leí que == hace conversión de tipos, pero no entiendo cómo el string '123abc' puede ser igual al número 123.
Lo que ya he probado:
- Verifiqué con diferentes strings (por ejemplo, 'abc123' — allí == devolvió false)
- Leí la documentación de PHP sobre operadores