Avatar ·

Qual a diferença entre os operadores de comparação == (igualdade não estrita) e === (igualdade estrita) em PHP?

Olá a todos! Comecei a estudar PHP e me deparei com uma situação confusa. Estou escrevendo um script simples para verificar a idade do usuário, e os resultados me deixam intrigado.

Aqui está meu código:

<?php
$age = "25";  // string
$legal_age = 25;  // número

if ($age == $legal_age) {
    echo "Idade coincide (==)";  // isso é exibido
}

if ($age === $legal_age) {
    echo "Idade coincide (===)";  // isso NÃO é exibido
}
?>

Por que o primeiro if funciona e o segundo não? Ambos têm o mesmo valor — 25. Li no manual que existem == e ===, mas a diferença não é óbvia para mim. Quando usar cada operador? E o que acontece se eu acidentalmente os confundir em um projeto real? Por exemplo, ao verificar uma senha ou ID do banco de dados?

Agradeço desde já pelas explicações!

<<>>

Explicação detalhada da diferença entre == e === em PHP

Ótima pergunta! Esta é uma das "armadilhas" mais comuns para iniciantes em PHP. Vamos entender: