PHP: Comparando string numérica com número
Ao comparar qualquer string não numérica com um número, o resultado dependerá do contexto e do operador de comparação utilizado.
Igualdade (==):
Se você usar o operador de igualdade (==) para comparar uma string não numérica com um número, o PHP tentará converter a string em um número antes de fazer a comparação.
Exemplo:
$string = "abc"; $numero = 123; if ($string == $numero) { echo "As strings são iguais."; } else { echo "As strings não são iguais."; } |
Neste caso, a string “abc” será convertida para 0 (zero), e a comparação será entre 0 e 123. Portanto, o resultado será “As strings não são iguais.”
Identidade (===):
Se você usar o operador de identidade (===), o PHP não fará a conversão de tipo. Ele verificará se os valores e os tipos são idênticos.
Exemplo:
$string = "abc"; $numero = 123; if ($string === $numero) { echo "As strings são idênticas."; } else { echo "As strings não são idênticas."; } |
Neste caso, como os tipos são diferentes (string e int), o resultado será “As strings não são idênticas.”
A partir da versão 8.0.0 ocorrem melhorias, clique aqui para saber mais.