Таблица сравнения типов в 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 |