Tabela de comparações de tipos do PHP As seguintes tabelas demonstram o comportamento dos tipos e operadores de comparação no PHP, tanto para comparações aproximadas ou exatas. Este complemento é também relacionado com a seção do manual sobre type juggling. A inspiração vem dos comentários de vários usuários e do trabalho feito pela BlueShoes. Antes de utilizar essas tabelas, é importante entender os tipos e seus significados. Por exemplo, "42" é uma string enquanto 42 é um int. &false; é um bool enquanto "false" é uma string. Formulários HTML não passam inteiros, floats ou booleanos; eles passam strings. Para saber se uma string é do tipo númerico, você pode usar a função is_numeric. Usar apenas if ($x) quando $x estiver indefinido irá gerar um erro do nível E_NOTICE. Em vez disso, considere usar empty ou isset ou ainda inicialize suas variáveis. Algumas operações numéricas podem resultar em um valor representado pela constante NAN. Quaisquer comparações exatas ou aproximadas deste valor contra qualquer outro valor, incluindo ele mesmo, com exceção de &true;, terão como resultado &false;. (por exemplo NAN != NAN e NAN !== NAN) Exemplos de operações que geram NAN são sqrt(-1), asin(2), e acosh(0). Comparações de <varname>$x</varname> com funções PHP Expressão gettype empty is_null isset bool : if($x) $x = ""; string &true; &false; &true; &false; $x = null; NULL &true; &true; &false; &false; var $x; NULL &true; &true; &false; &false; $x está indefinido NULL &true; &true; &false; &false; $x = []; array &true; &false; &true; &false; $x = ['a', 'b']; array &false; &false; &true; &true; $x = false; bool &true; &false; &true; &false; $x = true; bool &false; &false; &true; &true; $x = 1; int &false; &false; &true; &true; $x = 42; int &false; &false; &true; &true; $x = 0; int &true; &false; &true; &false; $x = -1; int &false; &false; &true; &true; $x = "1"; string &false; &false; &true; &true; $x = "0"; string &true; &false; &true; &false; $x = "-1"; string &false; &false; &true; &true; $x = "php"; string &false; &false; &true; &true; $x = "true"; string &false; &false; &true; &true; $x = "false"; string &false; &false; &true; &true;
Comparações aproximadas com <literal>==</literal> &true; &false; 1 0 -1 "1" "0" "-1" &null; [] "php" "" &true; &true; &false; &true; &false; &true; &true; &false; &true; &false; &false; &true; &false; &false; &false; &true; &false; &true; &false; &false; &true; &false; &true; &true; &false; &true; 1 &true; &false; &true; &false; &false; &true; &false; &false; &false; &false; &false; &false; 0 &false; &true; &false; &true; &false; &false; &true; &false; &true; &false; &false;* &false;* -1 &true; &false; &false; &false; &true; &false; &false; &true; &false; &false; &false; &false; "1" &true; &false; &true; &false; &false; &true; &false; &false; &false; &false; &false; &false; "0" &false; &true; &false; &true; &false; &false; &true; &false; &false; &false; &false; &false; "-1" &true; &false; &false; &false; &true; &false; &false; &true; &false; &false; &false; &false; &null; &false; &true; &false; &true; &false; &false; &false; &false; &true; &true; &false; &true; [] &false; &true; &false; &false; &false; &false; &false; &false; &true; &true; &false; &false; "php" &true; &false; &false; &false;* &false; &false; &false; &false; &false; &false; &true; &false; "" &false; &true; &false; &false;* &false; &false; &false; &false; &true; &false; &false; &true;
* &true; anteriormente ao PHP 8.0.0.
Comparações exatas com <literal>===</literal> &true; &false; 1 0 -1 "1" "0" "-1" &null; [] "php" "" &true; &true; &false; &false; &false; &false; &false; &false; &false; &false; &false; &false; &false; &false; &false; &true; &false; &false; &false; &false; &false; &false; &false; &false; &false; &false; 1 &false; &false; &true; &false; &false; &false; &false; &false; &false; &false; &false; &false; 0 &false; &false; &false; &true; &false; &false; &false; &false; &false; &false; &false; &false; -1 &false; &false; &false; &false; &true; &false; &false; &false; &false; &false; &false; &false; "1" &false; &false; &false; &false; &false; &true; &false; &false; &false; &false; &false; &false; "0" &false; &false; &false; &false; &false; &false; &true; &false; &false; &false; &false; &false; "-1" &false; &false; &false; &false; &false; &false; &false; &true; &false; &false; &false; &false; &null; &false; &false; &false; &false; &false; &false; &false; &false; &true; &false; &false; &false; [] &false; &false; &false; &false; &false; &false; &false; &false; &false; &true; &false; &false; "php" &false; &false; &false; &false; &false; &false; &false; &false; &false; &false; &true; &false; "" &false; &false; &false; &false; &false; &false; &false; &false; &false; &false; &false; &true;