Таблиці порівняння типів 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
truefalsetruefalsefalsetruefalsefalsefalsefalsefalsefalse
falsetruefalsetruefalsefalsetruefalsetruefalsefalse*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
falsefalsetruefalsefalsefalsefalsefalsefalsefalsefalsefalse
falsefalsefalsetruefalsefalsefalsefalsefalsefalsefalsefalse
-1falsefalsefalsefalsetruefalsefalsefalsefalsefalsefalsefalse
"1"falsefalsefalsefalsefalsetruefalsefalsefalsefalsefalsefalse
"0"falsefalsefalsefalsefalsefalsetruefalsefalsefalsefalsefalse
"-1"falsefalsefalsefalsefalsefalsefalsetruefalsefalsefalsefalse
nullfalsefalsefalsefalsefalsefalsefalsefalsetruefalsefalsefalse
[]falsefalsefalsefalsefalsefalsefalsefalsefalsetruefalsefalse
"php"falsefalsefalsefalsefalsefalsefalsefalsefalsefalsetruefalse
""falsefalsefalsefalsefalsefalsefalsefalsefalsefalsefalsetrue