Diferença entre == e === em PHP
Diferença entre == e === em PHP: comportamento estranho ao comparar string e número
Olá a todos! Sou novo em PHP e me deparei com um comportamento inesperado dos operadores de comparação. Estou tentando entender a diferença entre == (igualdade não estrita) e === (igualdade estrita).
Tenho um código simples:
$a = '123abc';
$b = 123;
var_dump($a == $b); // Resultado: true
var_dump($a === $b); // Resultado: falseEu esperava que ambas as comparações retornassem false, porque os tipos são diferentes (string e número). Mas == retorna true. Por que isso acontece? Li que == faz coerção de tipos, mas não entendo como a string '123abc' pode ser igual ao número 123.
O que já tentei:
- Testei com diferentes strings (por exemplo, 'abc123' — nesse caso == retornou false)
- Li a documentação do PHP sobre operadores de comparação
- Experimentei com outros tipos (booleanos, null)
Vocês podem explicar com um exemplo claro quando usar == e quando usar ===? E por que no meu caso ocorre isso?
No answers yet.
Faça login para deixar uma resposta