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

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

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

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

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

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

Таблица O-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`

Таблица O-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`

Таблица O-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