Таблица сравнения типов в PHP
Следующие таблицы демонстрируют работу PHP с
типами переменных и
операторами
сравнения, как в случае свободного, так и в случае строгого
сравнения. Также эта информация относится к разделу документации
по приведению типов.
Вдохновением на создание этого раздела мы обязаны различным комментариям
пользователей и работе над
» BlueShoes.
До осмотра таблиц, важно знать и понимать типы переменных и их значения.
К примеру, "42" -- строка,
в то время как 42 -- целое. FALSE --
логическое, а "false" --
строка.
Замечание:
HTML-формы не передают тип переменной: они всегда передают строки. Для
проверки является ли строка числом, используйте функцию
is_numeric().
Замечание:
Использование if ($x) пока $x не
определена сгенерирует ошибку E_NOTICE.
Вместо этого используйте функцию empty() или
isset() и/или инициализируйте переменную.
Сравнение типов $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 |
Гибкое сравнение с помощью ==
|
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 |
Жёсткое сравнение с помощью ===
|
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 ситуация
изменилась: строка трактуется как пустая.