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.
Foto de Rafael Nogueira
Contribuições de
Rafael Nogueira

Especialista em desenvolvimento backend com PHP para aplicações escaláveis.

Mais sobre o autor
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