Entenda a diferença entre igualdade e identidade no PHP

Veja qual a diferença entre os operadores == e === no PHP, como eles funcionam e qual a melhor forma de utilizá-los.

Qual a diferença entre == e === no PHP?

No PHP, os operadores == (igualdade) e === (identidade) são utilizados para comparar valores. No entanto, há uma diferença fundamental entre eles: enquanto == compara apenas os valores das variáveis, === compara tanto o valor quanto o tipo de dado.

O operador de igualdade (==)

O operador == verifica se os valores de duas variáveis são iguais, independentemente do tipo de dado:

<?php
$a = 10;
$b = "10";
if ($a == $b) {
    echo "As variáveis são iguais!";
} else {
    echo "As variáveis são diferentes!";
}
?>

O resultado será As variáveis são iguais!, pois o PHP converte implicitamente a string "10" para um número antes da comparação.

O operador de identidade (===)

O operador === verifica se os valores são iguais e também se os tipos de dados são os mesmos:

<?php
$a = 10;
$b = "10";
if ($a === $b) {
    echo "As variáveis são idênticas!";
} else {
    echo "As variáveis são diferentes!";
}
?>

Neste caso, a saída será As variáveis são diferentes!, pois $a é um inteiro e $b é uma string.

Quando usar == e ===?

  • Use == quando quiser comparar apenas valores, sem se preocupar com os tipos.
  • Use === para garantir que tanto o valor quanto o tipo sejam exatamente os mesmos, evitando conversões automáticas do PHP.

A escolha entre == e === pode evitar muitos erros comuns no PHP. Como a linguagem realiza conversões implícitas de tipos, comparações mal planejadas podem resultar em bugs difíceis de identificar. Por exemplo, 0 == false retorna true, pois ambos são considerados valores "falsy". Para evitar esse tipo de problema, a recomendação é utilizar === sempre que o tipo de dado for relevante para a lógica do código.

Algumas aplicações:

  • Verificação segura de valores de entrada do usuário
  • Comparação de retornos de funções que podem ter múltiplos tipos
  • Evitar erros ao comparar valores numéricos e strings
  • Garantia de que valores booleanos são tratados corretamente

Dicas para quem está começando

  • Se o tipo da variável for importante, sempre utilize ===.
  • Evite comparações soltas como 0 == false, pois podem causar comportamentos inesperados.
  • Use var_dump($variavel) para verificar o tipo antes de compará-la.
  • Se precisar comparar valores sem considerar o tipo, então == pode ser utilizado.
  • Quando trabalhar com banco de dados, prefira === para evitar erros ao comparar IDs ou valores numéricos armazenados como string.

Contribuições de Rafael Nogueira

Compartilhe este tutorial: Qual a diferença entre == e === no PHP

Compartilhe este tutorial

Continue aprendendo:

Como usar o foreach para percorrer arrays no PHP

Veja como usar o foreach no PHP para percorrer arrays de forma mais intuitiva e eficiente, sem a necessidade de utilizar contadores.

Tutorial anterior

Como usar operadores lógicos no PHP

Veja como funcionam os operadores lógicos no PHP, como combiná-los e quais são as melhores práticas para controle de fluxo.

Próximo tutorial