¿Cuál es la diferencia entre los operadores de comparación == (igualdad no estricta) y === (igualdad estricta) en PHP?
¡Hola a todos! Acabo de empezar a aprender PHP y me encontré con una situación confusa. Estoy escribiendo un script simple para verificar la edad del usuario, y los resultados me desconciertan.
Aquí está mi código:
<?php
$age = "25"; // string
$legal_age = 25; // number
if ($age == $legal_age) {
echo "La edad coincide (==)"; // esto se muestra
}
if ($age === $legal_age) {
echo "La edad coincide (===)"; // esto NO se muestra
}
?>
¿Por qué el primer if se ejecuta y el segundo no? Aparentemente, ambos tienen el mismo valor — 25. Leí en el manual que hay == y ===, pero la diferencia no me es obvia. ¿Cuándo usar cada operador? ¿Y qué pasa si accidentalmente los confundo en un proyecto real? Por ejemplo, al verificar una contraseña o un ID de la base de datos.
¡Gracias de antemano por las aclaraciones!
<<Explicación detallada de la diferencia entre == y === en PHP
¡Excelente pregunta! Esta es una de las "trampas" más comunes para principiantes en PHP. Vamos a desglosarlo.