Руководство по PHP
Пред. |  | След.

# Приложение P. Таблица сравнения типов в PHP

Следующие таблицы демонстрируют работу PHP с типами переменных и операторами сравнения, как в случае свободного, так и в случае строгого сравнения. Также эта информация относится к разделу документации по приведению типов. Вдохновением на создание этого раздела мы обязаны различным комментариям пользователей и работе над BlueShoes.

До осмотра таблиц, важно знать и понимать типы переменных и их значения. К примеру, `"42"` -- строка, в то время как `42` -- целое. `FALSE` -- логическое, а `"false"` -- строка.

> Замечание: HTML-формы не передают тип переменной: они всегда передают строки. Для проверки является ли строка числом, используйте функцию is_numeric().

> Замечание: Использование `if ($x)` пока `$x` не определена сгенерирует ошибку `E_NOTICE`. Вместо этого используйте функцию empty() или isset() и/или инициализируйте переменную.

Таблица P-1. Сравнение типов `$x` и результатов функций PHP, связанных с типами

Выражение | gettype() | empty() | is_null() | isset() | логическое : `if($x)`
--- | --- | --- | --- | --- | ---
`$x = "";` | строка | `TRUE` | `FALSE` | `TRUE` | `FALSE`
`$x = `NULL`` | NULL | `TRUE` | `TRUE` | `FALSE` | `FALSE`
`var $x;` | NULL | `TRUE` | `TRUE` | `FALSE` | `FALSE`
`$x` неопределена | NULL | `TRUE` | `TRUE` | `FALSE` | `FALSE`
`$x = array();` | массив | `TRUE` | `FALSE` | `TRUE` | `FALSE`
`$x = false;` | логическое | `TRUE` | `FALSE` | `TRUE` | `FALSE`
`$x = true;` | логическое | `FALSE` | `FALSE` | `TRUE` | `TRUE`
`$x = 1;` | целое | `FALSE` | `FALSE` | `TRUE` | `TRUE`
`$x = 42;` | целое | `FALSE` | `FALSE` | `TRUE` | `TRUE`
`$x = 0;` | целое | `TRUE` | `FALSE` | `TRUE` | `FALSE`
`$x = -1;` | целое | `FALSE` | `FALSE` | `TRUE` | `TRUE`
`$x = "1";` | строка | `FALSE` | `FALSE` | `TRUE` | `TRUE`
`$x = "0";` | строка | `TRUE` | `FALSE` | `TRUE` | `FALSE`
`$x = "-1";` | строка | `FALSE` | `FALSE` | `TRUE` | `TRUE`
`$x = "php";` | строка | `FALSE` | `FALSE` | `TRUE` | `TRUE`
`$x = "true";` | строка | `FALSE` | `FALSE` | `TRUE` | `TRUE`
`$x = "false";` | строка | `FALSE` | `FALSE` | `TRUE` | `TRUE`

Таблица P-2. Гибкое сравнение с помощью `==`

| `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` | `FALSE` | `TRUE` | `FALSE`
`"php"` | `TRUE` | `FALSE` | `FALSE` | `TRUE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `FALSE` | `TRUE`

Таблица P-3. Жёсткое сравнение с помощью `===`

| `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`

> Заметка о PHP 3.0: Строка `"0"` считалась не пустой, в PHP4 ситуация изменилась: строка трактуется как пустая.

Пред. | Начало | След.
Unix-сокеты: UNIX и UDG | Уровень выше | List of Parser Tokens