Manual do PHP
Anterior |  | Próxima

# Apêndice Q. Tabelas de comparação de tipo do PHP

As seguintes tabelas demonstram comportamentos no PHP de tipos e operadores de comparação, tanto para comparação solta e restrita. Esse suplemento também se relacionam a seção do manual de type juggling. Inspiração provem de comentários de vários usuários e pelo trabalho na BlueShoes.

Antes de utilizar essas tabelas, é importante entender tipos e seus significados. Por exemplo, `"42"` é uma string enquanto `42` é um inteiro. `FALSE` é um boolean enquanto `"false"` é uma string.

> Nota: Formulários HTML não passam inteiros, floats ou booleans; Eles passam strings. Para descobrir se uma string é numérica, você pode usar is_numeric().

> Nota: Simplesmente fazer `if ($x)` enquanto `$x` é indefinido causará um error de nível `E_NOTICE`. Ao invés, considere usar empty() ou isset() e/ou inicializar suas variáveis.

Tabela Q-1. Comparações de `$x` com funções do PHP

Expression | gettype() | empty() | is_null() | isset() | boolean : `if($x)`
--- | --- | --- | --- | --- | ---
`$x = "";` | string | `TRUE` | `FALSE` | `TRUE` | `FALSE`
`$x = `NULL`` | NULL | `TRUE` | `TRUE` | `FALSE` | `FALSE`
`var $x;` | NULL | `TRUE` | `TRUE` | `FALSE` | `FALSE`
`$x` is undefined | NULL | `TRUE` | `TRUE` | `FALSE` | `FALSE`
`$x = array();` | array | `TRUE` | `FALSE` | `TRUE` | `FALSE`
`$x = false;` | boolean | `TRUE` | `FALSE` | `TRUE` | `FALSE`
`$x = true;` | boolean | `FALSE` | `FALSE` | `TRUE` | `TRUE`
`$x = 1;` | integer | `FALSE` | `FALSE` | `TRUE` | `TRUE`
`$x = 42;` | integer | `FALSE` | `FALSE` | `TRUE` | `TRUE`
`$x = 0;` | integer | `TRUE` | `FALSE` | `TRUE` | `FALSE`
`$x = -1;` | integer | `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`

Tabela Q-2. Comparações soltas com `==`

| `TRUE` | `FALSE` | `1` | `0` | `-1` | `"1"` | `"0"` | `"-1"` | `NULL` | `array()` | `"php"`
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
`TRUE` | `TRUE` | `FALSE` | `TRUE` | `FALSE` | `TRUE` | `TRUE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `TRUE`
`FALSE` | `FALSE` | `TRUE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `TRUE` | `TRUE` | `FALSE`
`1` | `TRUE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE`
`0` | `FALSE` | `TRUE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `TRUE` | `FALSE` | `TRUE`
`-1` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE`
`"1"` | `TRUE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE`
`"0"` | `FALSE` | `TRUE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE`
`"-1"` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE`
`NULL` | `FALSE` | `TRUE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `TRUE` | `FALSE`
`array()` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `TRUE` | `FALSE`
`"php"` | `TRUE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE`

Tabela Q-3. Comparações restritas com `===`

| `TRUE` | `FALSE` | `1` | `0` | `-1` | `"1"` | `"0"` | `"-1"` | `NULL` | `array()` | `"php"`
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
`TRUE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE`
`FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE`
`1` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE`
`0` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE`
`-1` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE`
`"1"` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE`
`"0"` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE`
`"-1"` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE`
`NULL` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE`
`array()` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE` | `FALSE`
`"php"` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE`

> Nota para o PHP 3.0: O valor string `"0"` era considerado não-vazio no PHP 3, esse comportamento mudou no PHP 4 onde ele é visto como vazio.

Anterior | Principal | Próxima
Domínio Unix: Unix e UDG | Acima | List of Parser Tokens