Таблица сравнения типов в 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,
не-число). Любое строгое или нестрогое сравнение этого значения
с каким-либо другим, включая его самого, но исключая &true;, вернет &false; (т.е.
NAN != NAN и NAN !== NAN).
Примерами операций, возвращающих NAN, являются
sqrt(-1), asin(2) и acosh(0).
Сравнение типов $x и результатов функций PHP, связанных с типамиВыражениеgettypeemptyis_nullissetboolean : 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 = array('a', 'b');array&false;&false;&true;&true;$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;10-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;10-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;