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: