Таблицы сравнения типов PHP

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

Перед тем как начать пользоваться таблицами, важно понять типы и их значения. Наример, «42» — строка (string), а 42 — целое число (int). Значение false — логическое значение (bool), а «false» — строка (string).

Замечание:

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

Замечание:

Выражение if ($x), если переменная $x не определена, сгенерирует ошибку уровня E_NOTICE. Вместо этого пользуются языковыми конструкциями empty() или isset(), и/или инициализируют переменную.

Замечание:

Бывают арифметические операции, возвращающие значение, которое представляет константа NAN (Not A Number, нечисло). Любое строгое или нестрогое сравнение этого значения с любым другим, включая его самого, но исключая true, вернёт false (т. е. NAN != NAN и NAN !== NAN). Примеры операций, возвращающих NAN, — sqrt(-1), asin(2) и acosh(0).

Сравнение типов переменной $x и результатов функций PHP, связанных с типами
Выражениеgettype()empty()is_null()isset()bool : if($x)
$x = "";stringtruefalsetruefalse
$x = null;NULLtruetruefalsefalse
var $x;NULLtruetruefalsefalse
$x не определенаNULLtruetruefalsefalse
$x = [];arraytruefalsetruefalse
$x = ['a', 'b'];arrayfalsefalsetruetrue
$x = false;booltruefalsetruefalse
$x = true;boolfalsefalsetruetrue
$x = 1;intfalsefalsetruetrue
$x = 42;intfalsefalsetruetrue
$x = 0;inttruefalsetruefalse
$x = -1;intfalsefalsetruetrue
$x = "1";stringfalsefalsetruetrue
$x = "0";stringtruefalsetruefalse
$x = "-1";stringfalsefalsetruetrue
$x = "php";stringfalsefalsetruetrue
$x = "true";stringfalsefalsetruetrue
$x = "false";stringfalsefalsetruetrue

Гибкое сравнение через оператор ==
truefalse10-1"1""0""-1"null[]"php"""
truetruefalsetruefalsetruetruefalsetruefalsefalsetruefalse
falsefalsetruefalsetruefalsefalsetruefalsetruetruefalsetrue
1truefalsetruefalsefalsetruefalsefalsefalsefalsefalsefalse
0falsetruefalsetruefalsefalsetruefalsetruefalsefalse*false*
-1truefalsefalsefalsetruefalsefalsetruefalsefalsefalsefalse
"1"truefalsetruefalsefalsetruefalsefalsefalsefalsefalsefalse
"0"falsetruefalsetruefalsefalsetruefalsefalsefalsefalsefalse
"-1"truefalsefalsefalsetruefalsefalsetruefalsefalsefalsefalse
nullfalsetruefalsetruefalsefalsefalsefalsetruetruefalsetrue
[]falsetruefalsefalsefalsefalsefalsefalsetruetruefalsefalse
"php"truefalsefalsefalse*falsefalsefalsefalsefalsefalsetruefalse
""falsetruefalsefalse*falsefalsefalsefalsetruefalsefalsetrue
* true до PHP 8.0.0.

Жёсткое сравнение через оператор ===
truefalse10-1"1""0""-1"null[]"php"""
truetruefalsefalsefalsefalsefalsefalsefalsefalsefalsefalsefalse
falsefalsetruefalsefalsefalsefalsefalsefalsefalsefalsefalsefalse
1falsefalsetruefalsefalsefalsefalsefalsefalsefalsefalsefalse
0falsefalsefalsetruefalsefalsefalsefalsefalsefalsefalsefalse
-1falsefalsefalsefalsetruefalsefalsefalsefalsefalsefalsefalse
"1"falsefalsefalsefalsefalsetruefalsefalsefalsefalsefalsefalse
"0"falsefalsefalsefalsefalsefalsetruefalsefalsefalsefalsefalse
"-1"falsefalsefalsefalsefalsefalsefalsetruefalsefalsefalsefalse
nullfalsefalsefalsefalsefalsefalsefalsefalsetruefalsefalsefalse
[]falsefalsefalsefalsefalsefalsefalsefalsefalsetruefalsefalse
"php"falsefalsefalsefalsefalsefalsefalsefalsefalsefalsetruefalse
""falsefalsefalsefalsefalsefalsefalsefalsefalsefalsefalsetrue
To Top