Таблица сравнения типов в PHP
Следующие таблицы демонстрируют работу PHP с
типами переменных и
операторами
сравнения, как в случае свободного, так и в случае строгого
сравнения. Также эта информация относится к разделу документации
по приведению типов.
Вдохновением на создание этого раздела мы обязаны различным комментариям
пользователей и работе над
» BlueShoes.
До осмотра таблиц, важно знать и понимать типы переменных и их значения.
К примеру, "42" - string,
в то время как 42 - integer. FALSE -
boolean, а "false" -
string.
Замечание:
HTML-формы не передают целые, дробные числа или булевые переменные: они всегда передают строки. Для
проверки является ли строка числом, используйте функцию
is_numeric().
Замечание:
Использование if ($x), если $x не
определена, сгенерирует ошибку уровня E_NOTICE.
Вместо этого используйте функцию empty() или
isset() и/или инициализируйте переменную.
Замечание:
Некоторые арифметические операции могут вернуть значение,
представленное константой NAN (Not A Number,
не-число). Любое строгое или нестрогое сравнение этого значения
с каким-либо другим, включая его самого, вернет FALSE (т.е.
NAN != NAN и NAN !== NAN).
Примерами операций, возвращающих NAN, являются
sqrt(-1), asin(2) и
asinh(0).
Сравнение типов $x и результатов функций PHP, связанных с типами
| Выражение |
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 неопределена |
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 |
Гибкое сравнение с помощью ==
| |
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 |
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 |
TRUE |
TRUE |
| -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 |
| array() |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
TRUE |
FALSE |
FALSE |
| "php" |
TRUE |
FALSE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
| "" |
FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
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 |
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 |
| array() |
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 |