Avatar ·

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