PHP Шпаргалки: различия между версиями
(→Объявление типов для строгой типизации: Дополнения) |
AE (обсуждение | вклад) Нет описания правки Метка: визуальный редактор отключён |
||
(не показано 16 промежуточных версий 2 участников) | |||
Строка 47: | Строка 47: | ||
!Описание | !Описание | ||
!Примеры | !Примеры | ||
!Приведение к | |||
!Проверка на | |||
|- | |- | ||
|bool | |bool | ||
Строка 52: | Строка 54: | ||
|булевый тип | |булевый тип | ||
|true, false | |true, false | ||
|(bool) $v | |||
|is_bool($v) | |||
|- | |- | ||
|int | |int | ||
Строка 57: | Строка 61: | ||
|целые числа | |целые числа | ||
|15, 017, 0xf, 0b1111 | |15, 017, 0xf, 0b1111 | ||
|(int) $v | |||
|is_int($v) | |||
|- | |- | ||
|float | |float | ||
Строка 62: | Строка 68: | ||
|числа с плав. точкой | |числа с плав. точкой | ||
|0.01, 1e-2 | |0.01, 1e-2 | ||
|(float) $v | |||
|is_float($v) | |||
|- | |- | ||
|string | |string | ||
Строка 67: | Строка 75: | ||
|строки | |строки | ||
|'abc', "abc" | |'abc', "abc" | ||
|(string) $v | |||
|is_string($v) | |||
|- | |- | ||
|array | |array | ||
Строка 73: | Строка 83: | ||
|[1,-0.1,'abc'], | |[1,-0.1,'abc'], | ||
array('key' => 'value') | array('key' => 'value') | ||
|(array) $v | |||
|is_array($v) | |||
|- | |- | ||
|object | |object | ||
Строка 79: | Строка 91: | ||
|new stdClass(), | |new stdClass(), | ||
new class {} | new class {} | ||
|(object) $v | |||
|is_object($v) | |||
|- | |- | ||
|callable | |callable | ||
Строка 85: | Строка 99: | ||
|function(){}, | |function(){}, | ||
fn($x) => $x+1 | fn($x) => $x+1 | ||
| - | |||
|is_callable($v) | |||
|- | |- | ||
|iterable | |iterable | ||
Строка 91: | Строка 107: | ||
|[1,2], | |[1,2], | ||
(function() { yield 1; yield 2; })() | (function() { yield 1; yield 2; })() | ||
| - | |||
|is_iterable($v) | |||
|- | |- | ||
|resource | |resource | ||
Строка 96: | Строка 114: | ||
|внешний ресурс | |внешний ресурс | ||
|fopen('<nowiki>http://www.google.com'</nowiki>, 'r') | |fopen('<nowiki>http://www.google.com'</nowiki>, 'r') | ||
| - | |||
|is_resource($v) | |||
|- | |- | ||
|NULL | |NULL | ||
Строка 101: | Строка 121: | ||
|нет значения | |нет значения | ||
|null | |null | ||
| - | |||
|is_null($v) | |||
|} | |} | ||
== Типы ошибок == | |||
{| class="wikitable" | |||
|Значение | |||
|Константа | |||
|Выполнение | |||
прерывается | |||
|Описание | |||
|- | |||
|1 | |||
|'''<code>E_ERROR</code>''' | |||
|style="background-color: #ff6666"|Да | |||
|Фатальные неустранимые ошибки во время выполнения. | |||
|- | |||
|2 | |||
|'''<code>E_WARNING</code>''' | |||
|style="background-color: #ffff66"|Нет | |||
|Не фатальные предупреждения во время выполнения. | |||
|- | |||
|4 | |||
|'''<code>E_PARSE</code>''' | |||
|style="background-color: #ff6666"|Да | |||
|Ошибки на этапе компиляции. Невозможность обработать исходный код. | |||
|- | |||
|8 | |||
|'''<code>E_NOTICE</code>''' | |||
|Нет | |||
|Уведомление с указанием на возможную ошибку. | |||
|- | |||
|16 | |||
|'''<code>E_CORE_ERROR</code>''' | |||
|style="background-color: #ff6666"|Да | |||
|Фатальные ошибки ядра PHP. | |||
|- | |||
|32 | |||
|'''<code>E_CORE_WARNING</code>''' | |||
|style="background-color: #ffff66"|Нет | |||
|Предупреждения ядра PHP. | |||
|- | |||
|64 | |||
|'''<code>E_COMPILE_ERROR</code>''' | |||
|style="background-color: #ff6666"|Да | |||
|Фатальные ошибки на этапе компиляции от движка Zend. | |||
|- | |||
|128 | |||
|'''<code>E_COMPILE_WARNING</code>''' | |||
|style="background-color: #ffff66"|Нет | |||
|Предупреждения на этапе компиляции от движка Zend. | |||
|- | |||
|256 | |||
|'''<code>E_USER_ERROR</code>''' | |||
|style="background-color: #ff6666"|Да | |||
|Фатальные ошибки, вызванные пользователем через trigger_error(). | |||
|- | |||
|512 | |||
|'''<code>E_USER_WARNING</code>''' | |||
|style="background-color: #ffff66"|Нет | |||
|Предупреждения, вызванные пользователем через trigger_error(). | |||
|- | |||
|1024 | |||
|'''<code>E_USER_NOTICE</code>''' | |||
|Нет | |||
|Уведомления, вызванные пользователем через trigger_error(). | |||
|- | |||
|2048 | |||
|'''<code>E_STRICT</code>''' | |||
|Нет | |||
|Предложения для лучшей совместимости с новыми версиями PHP | |||
|- | |||
|4096 | |||
|'''<code>E_RECOVERABLE_ERROR</code>''' | |||
|style="background-color: #ff6666"|Да | |||
|Фатальные ошибки с возможностью обработки с помощью set_error_handler(). | |||
|- | |||
|8192 | |||
|'''<code>E_DEPRECATED</code>''' | |||
|Нет | |||
|Уведомления о коде, который не будет работать в следующих версиях PHP. | |||
|- | |||
|16384 | |||
|'''<code>E_USER_DEPRECATED</code>''' | |||
|Нет | |||
|Уведомления о устаревшем функционале, вызванные пользователем через trigger_error() | |||
|- | |||
|32767 | |||
|'''<code>E_ALL</code>''' | |||
| - | |||
|Все типы ошибок, предупреждений и уведомлений. | |||
|} | |||
Полезный калькулятор ошибок https://maximivanov.github.io/php-error-reporting-calculator/ | |||
== Приведение типов == | |||
{| class="wikitable" | |||
|+ Примеры приведения типов в PHP 8+ | |||
! $v = ... | |||
!Тип | |||
! gettype($v) | |||
! (bool)$v | |||
! (int)$v | |||
! (float)$v | |||
! (string)$v | |||
! (array)$v | |||
! (object)$v | |||
|- | |||
! null | |||
|NULL | |||
| "NULL" | |||
| false | |||
| int(0) | |||
| float(0) | |||
| <code>""</code> | |||
| '''[ ]''' | |||
| '''{ }**''' | |||
|- | |||
! true | |||
|bool | |||
| '''"boolean"''' | |||
| true | |||
| int(1) | |||
| float(1) | |||
| "1" | |||
| [0=>true] | |||
| {"scalar":true}** | |||
|- | |||
! false | |||
|bool | |||
| '''"boolean"''' | |||
| false | |||
| int(0) | |||
| float(0) | |||
| <code>""</code> | |||
| [0=>false] | |||
| {"scalar":false}** | |||
|- | |||
! 0 | |||
|int | |||
| '''"integer"''' | |||
| false | |||
| int(0) | |||
| float(0) | |||
| "0" | |||
| [0=>0] | |||
| {"scalar":0}** | |||
|- | |||
! 1 | |||
|int | |||
| '''"integer"''' | |||
| true | |||
| int(1) | |||
| float(1) | |||
| "1" | |||
| [0=>1] | |||
| {"scalar":1}** | |||
|- | |||
! 1.99 | |||
|float | |||
| '''"double"''' | |||
| true | |||
| '''int(1)***''' | |||
| float(1.99) | |||
| "1.99" | |||
| [0=>1.99] | |||
| {"scalar":1.99}** | |||
|- | |||
! M_PI | |||
|float | |||
| '''"double"''' | |||
| true | |||
| int(3) | |||
| float(3.1...) | |||
| "3.14159..." | |||
| [0=>3.14159...] | |||
| {"scalar":3.141...}** | |||
|- | |||
! INF | |||
|float | |||
| '''"double"''' | |||
| true | |||
| '''int(0)''' | |||
| float(INF) | |||
| '''"INF"''' | |||
| [0=>INF] | |||
| {"scalar":INF}** | |||
|- | |||
! NAN | |||
|float | |||
| '''"double"''' | |||
| '''true''' | |||
| '''int(0)''' | |||
| float(NAN) | |||
| '''"NAN"''' | |||
| [0=>NAN] | |||
| {"scalar":NAN}** | |||
|- | |||
! "" | |||
|string | |||
| "string" | |||
| false | |||
| int(0) | |||
| float(0) | |||
| <code>""</code> | |||
| [0=><code>""</code>] | |||
| {"scalar":<code>""</code>}** | |||
|- | |||
! "0" | |||
|string | |||
| "string" | |||
| '''false''' | |||
| int(0) | |||
| float(0) | |||
| "0" | |||
| [0=>"0"] | |||
| {"scalar":"0"}** | |||
|- | |||
! "1" | |||
|string | |||
| "string" | |||
| true | |||
| int(1) | |||
| float(1) | |||
| "1" | |||
| [0=>"1"] | |||
| {"scalar":"1"}** | |||
|- | |||
! "true" | |||
|string | |||
| "string" | |||
| true | |||
| '''int(0)''' | |||
| float(0) | |||
| "true" | |||
| [0=>"true"] | |||
| {"scalar":"true"}** | |||
|- | |||
! "false" | |||
|string | |||
| "string" | |||
| '''true''' | |||
| int(0) | |||
| float(0) | |||
| "false" | |||
| [0=>"false"] | |||
| {"scalar":"false"}** | |||
|- | |||
! [ ] | |||
|array | |||
| "array" | |||
| '''false''' | |||
| '''int(0)''' | |||
| float(0) | |||
| style="background-color: #ffff66" | '''"Array" *''' | |||
| [ ] | |||
| { }** | |||
|- | |||
! [1,2] | |||
|array | |||
| "array" | |||
| true | |||
| int(1) | |||
| float(1) | |||
| style="background-color: #ffff66" | '''"Array" *''' | |||
| [0=>1,1=>2] | |||
| {'''"0"''':1,'''"1"''':2}** | |||
|- | |||
! ["3"=>"a","B",4=>"c"] | |||
|array | |||
| "array" | |||
| true | |||
| int(1) | |||
| float(1) | |||
| style="background-color: #ffff66" | '''"Array" *''' | |||
| '''[3=>"a",4=>"c"]''' | |||
| {'''"3"''':"a",'''"4"''':"c"}** | |||
|- | |||
! ["a"=>"b","b"] | |||
|array | |||
| "array" | |||
| true | |||
| int(1) | |||
| float(1) | |||
| style="background-color: #ffff66" | '''"Array" *''' | |||
| ["a"=>"b",'''0=>'''"b"] | |||
| {"a":"b",'''"0"''':"b"}** | |||
|- | |||
! [["a"=>"b"]] | |||
|array | |||
| "array" | |||
| true | |||
| int(1) | |||
| float(1) | |||
| style="background-color: #ffff66" | '''"Array" *''' | |||
| [["a"=>"b]] | |||
| {"0":'''["a"=>"b"]'''}** | |||
|- | |||
! new stdClass() | |||
|object | |||
| "object" | |||
| '''true''' | |||
| style="background-color: #ffff66" | '''int(1)*''' | |||
| style="background-color: #ffff66" | float(1)* | |||
| style="background-color: #ff6666" | '''Fatal error''' | |||
| [ ] | |||
| { }** | |||
|- | |||
! <small>Object с методом __toString</small> | |||
|object | |||
| "object" | |||
| true | |||
| style="background-color: #ffff66" | int(1)* | |||
| style="background-color: #ffff66" | float(1)* | |||
| "''<small>из __toString</small>''" | |||
| [<small>''поля из объекта''</small>] | |||
| ''object(SomeClass)'' | |||
|- | |||
!fn($x) => $x+1 | |||
|callable | |||
|'''"object"''' | |||
|true | |||
| style="background-color: #ffff66" | int(1)* | |||
| style="background-color: #ffff66" | float(1)* | |||
| style="background-color: #ff6666" | '''Fatal error''' | |||
|[''<small>object(Closure)</small>''] | |||
|''object(Closure)'' | |||
|- | |||
! <small>(function() { yield ...; })()</small> | |||
|iterable | |||
| '''"object"''' | |||
| true | |||
| style="background-color: #ffff66" | int(1)* | |||
| style="background-color: #ffff66" | float(1)* | |||
| style="background-color: #ff6666" | '''Fatal error''' | |||
| [ ] | |||
| ''object(Generator)'' | |||
|- | |||
! fopen('xxx', 'r') | |||
|resource | |||
| "resource" | |||
| true | |||
| '''int(?)''' | |||
| '''float(?)''' | |||
| "<small>Resource id #?</small>" | |||
| [<small>''resource…''</small>] | |||
| {"scalar":''<small>resource…</small>''} | |||
|- | |||
! <sub>Примечания:</sub> | |||
| colspan="2" | <sub>* E_WARNING</sub> | |||
| colspan="3" | <sub>** { } - обозначение для object(stdClass)</sub> | |||
| colspan="3" | <sub>*** округление в меньшую сторону</sub> | |||
|- | |||
|} | |||
До версии PHP < 7.3 при приведении массива к объекту ключи оставались цифрами: {0:1} вместо {"0":1}. До версии 8.0 типы ошибок были менее строгие. В остальном в старых версиях приведение работает аналогично. | |||
== Объявление типов для строгой типизации == | == Объявление типов для строгой типизации == | ||
Строка 171: | Строка 655: | ||
| | | | ||
|- | |- | ||
| | |iterable | ||
|7.1 | |7.1 | ||
|7.1 | |7.1 | ||
|7.4 | |7.4 | ||
| | |Массив или объект, реализующий интерфейс <code>Traversable</code> | ||
|- | |- | ||
| | |?xxxxx | ||
|7.1 | |7.1 | ||
|7.1 | |7.1 | ||
|7.4 | |7.4 | ||
| | |Значение может быть xxxxx или <code>null</code> | ||
|- | |- | ||
|void | |void | ||
Строка 976: | Строка 1460: | ||
|- | |- | ||
|} | |} | ||
[[Категория:Шпаргалки]] |
Текущая версия от 16:54, 12 ноября 2022
Операторы[править | править код]
Арифметика | Сравнение | Логические | Побитовые |
---|---|---|---|
+ сложение
|
=== равно
|
&& (and ) и
|
& и
|
- вычитание
|
!== не равно
|
|| (or ) или
|
| или
|
* умножение
|
< меньше
|
! отрицание
|
~ отрицание
|
/ деление
|
> больше
|
xor искл. или
|
^ искл. или
|
% остаток
|
<= меньше или равно
|
<< сдвиг влево
| |
** степень
|
>= больше или равно
|
>> сдвиг вправо
|
Типы данных[править | править код]
Тип | Подтип | Описание | Примеры | Приведение к | Проверка на |
---|---|---|---|---|---|
bool | скалярный | булевый тип | true, false | (bool) $v | is_bool($v) |
int | скалярный | целые числа | 15, 017, 0xf, 0b1111 | (int) $v | is_int($v) |
float | скалярный | числа с плав. точкой | 0.01, 1e-2 | (float) $v | is_float($v) |
string | скалярный | строки | 'abc', "abc" | (string) $v | is_string($v) |
array | смешанный | массивы | [1,-0.1,'abc'],
array('key' => 'value') |
(array) $v | is_array($v) |
object | смешанный | объекты | new stdClass(),
new class {} |
(object) $v | is_object($v) |
callable | смешанный | можно в callback | function(){},
fn($x) => $x+1 |
- | is_callable($v) |
iterable | смешанный | можно в foreach | [1,2],
(function() { yield 1; yield 2; })() |
- | is_iterable($v) |
resource | специальный | внешний ресурс | fopen('http://www.google.com', 'r') | - | is_resource($v) |
NULL | специальный | нет значения | null | - | is_null($v) |
Типы ошибок[править | править код]
Значение | Константа | Выполнение
прерывается |
Описание |
1 | E_ERROR
|
Да | Фатальные неустранимые ошибки во время выполнения. |
2 | E_WARNING
|
Нет | Не фатальные предупреждения во время выполнения. |
4 | E_PARSE
|
Да | Ошибки на этапе компиляции. Невозможность обработать исходный код. |
8 | E_NOTICE
|
Нет | Уведомление с указанием на возможную ошибку. |
16 | E_CORE_ERROR
|
Да | Фатальные ошибки ядра PHP. |
32 | E_CORE_WARNING
|
Нет | Предупреждения ядра PHP. |
64 | E_COMPILE_ERROR
|
Да | Фатальные ошибки на этапе компиляции от движка Zend. |
128 | E_COMPILE_WARNING
|
Нет | Предупреждения на этапе компиляции от движка Zend. |
256 | E_USER_ERROR
|
Да | Фатальные ошибки, вызванные пользователем через trigger_error(). |
512 | E_USER_WARNING
|
Нет | Предупреждения, вызванные пользователем через trigger_error(). |
1024 | E_USER_NOTICE
|
Нет | Уведомления, вызванные пользователем через trigger_error(). |
2048 | E_STRICT
|
Нет | Предложения для лучшей совместимости с новыми версиями PHP |
4096 | E_RECOVERABLE_ERROR
|
Да | Фатальные ошибки с возможностью обработки с помощью set_error_handler(). |
8192 | E_DEPRECATED
|
Нет | Уведомления о коде, который не будет работать в следующих версиях PHP. |
16384 | E_USER_DEPRECATED
|
Нет | Уведомления о устаревшем функционале, вызванные пользователем через trigger_error() |
32767 | E_ALL
|
- | Все типы ошибок, предупреждений и уведомлений. |
Полезный калькулятор ошибок https://maximivanov.github.io/php-error-reporting-calculator/
Приведение типов[править | править код]
$v = ... | Тип | gettype($v) | (bool)$v | (int)$v | (float)$v | (string)$v | (array)$v | (object)$v |
---|---|---|---|---|---|---|---|---|
null | NULL | "NULL" | false | int(0) | float(0) | ""
|
[ ] | { }** |
true | bool | "boolean" | true | int(1) | float(1) | "1" | [0=>true] | {"scalar":true}** |
false | bool | "boolean" | false | int(0) | float(0) | ""
|
[0=>false] | {"scalar":false}** |
0 | int | "integer" | false | int(0) | float(0) | "0" | [0=>0] | {"scalar":0}** |
1 | int | "integer" | true | int(1) | float(1) | "1" | [0=>1] | {"scalar":1}** |
1.99 | float | "double" | true | int(1)*** | float(1.99) | "1.99" | [0=>1.99] | {"scalar":1.99}** |
M_PI | float | "double" | true | int(3) | float(3.1...) | "3.14159..." | [0=>3.14159...] | {"scalar":3.141...}** |
INF | float | "double" | true | int(0) | float(INF) | "INF" | [0=>INF] | {"scalar":INF}** |
NAN | float | "double" | true | int(0) | float(NAN) | "NAN" | [0=>NAN] | {"scalar":NAN}** |
"" | string | "string" | false | int(0) | float(0) | ""
|
[0=>"" ]
|
{"scalar":"" }**
|
"0" | string | "string" | false | int(0) | float(0) | "0" | [0=>"0"] | {"scalar":"0"}** |
"1" | string | "string" | true | int(1) | float(1) | "1" | [0=>"1"] | {"scalar":"1"}** |
"true" | string | "string" | true | int(0) | float(0) | "true" | [0=>"true"] | {"scalar":"true"}** |
"false" | string | "string" | true | int(0) | float(0) | "false" | [0=>"false"] | {"scalar":"false"}** |
[ ] | array | "array" | false | int(0) | float(0) | "Array" * | [ ] | { }** |
[1,2] | array | "array" | true | int(1) | float(1) | "Array" * | [0=>1,1=>2] | {"0":1,"1":2}** |
["3"=>"a","B",4=>"c"] | array | "array" | true | int(1) | float(1) | "Array" * | [3=>"a",4=>"c"] | {"3":"a","4":"c"}** |
["a"=>"b","b"] | array | "array" | true | int(1) | float(1) | "Array" * | ["a"=>"b",0=>"b"] | {"a":"b","0":"b"}** |
[["a"=>"b"]] | array | "array" | true | int(1) | float(1) | "Array" * | [["a"=>"b]] | {"0":["a"=>"b"]}** |
new stdClass() | object | "object" | true | int(1)* | float(1)* | Fatal error | [ ] | { }** |
Object с методом __toString | object | "object" | true | int(1)* | float(1)* | "из __toString" | [поля из объекта] | object(SomeClass) |
fn($x) => $x+1 | callable | "object" | true | int(1)* | float(1)* | Fatal error | [object(Closure)] | object(Closure) |
(function() { yield ...; })() | iterable | "object" | true | int(1)* | float(1)* | Fatal error | [ ] | object(Generator) |
fopen('xxx', 'r') | resource | "resource" | true | int(?) | float(?) | "Resource id #?" | [resource…] | {"scalar":resource…} |
Примечания: | * E_WARNING | ** { } - обозначение для object(stdClass) | *** округление в меньшую сторону |
До версии PHP < 7.3 при приведении массива к объекту ключи оставались цифрами: {0:1} вместо {"0":1}. До версии 8.0 типы ошибок были менее строгие. В остальном в старых версиях приведение работает аналогично.
Объявление типов для строгой типизации[править | править код]
Объявление типов (Type declarations) поддерживается в параметрах функциях, возвращаемых функциями значениях и в свойствах (полях) классов.
Что указываем | В параметрах
функций |
В возвращаемых
значениях |
В свойствах
класса |
Особенности |
---|---|---|---|---|
Имя класса или
интерфейса |
5.0 | 7.0 | 7.4 | |
self | 5.0 | 7.0 | 7.4 | Объект текущего класса. Может использоваться только в классах |
parent | 5.0 | 7.0 | 7.4 | Объект родительского класса. Может использоваться только в классах |
array | 5.1 | 7.0 | 7.4 | |
callable | 5.4 | 7.0 | - | Нельзя использовать для свойств класса |
bool | 7.0 | 7.0 | 7.4 | |
float | 7.0 | 7.0 | 7.4 | |
int | 7.0 | 7.0 | 7.4 | |
string | 7.0 | 7.0 | 7.4 | |
iterable | 7.1 | 7.1 | 7.4 | Массив или объект, реализующий интерфейс Traversable
|
?xxxxx | 7.1 | 7.1 | 7.4 | Значение может быть xxxxx или null
|
void | - | 7.1 | - | Функция ничего не возвращает |
object | 7.2 | 7.2 | 7.4 | |
xx|yy|zz
|
8.0 | 8.0 | 8.0 | Объединение типов, должен подходить любой один из указанных |
null | - | - | - | Добавлен в 8.0. Псевдотип, может использоваться только для объединений xx|yy|null
|
false | - | - | - | Добавлен в 8.0. Псевдотип, может использоваться только для объединений xx|yy|false
|
mixed | 8.0 | 8.0 | 8.0 | То же самое, что object|resource|array|string|int|float|bool|null
|
static | 8.0 | 8.0 | 8.0 | Объект текущий класса или любого дочернего |
xx&yy&zz
|
8.1 | 8.1 | 8.1 | Пересечение типов, все должны подходить. Актуально для названия классов и интерфейсов. |
never | - | 8.1 | - | Функция может прервать выполнения программы |
Примечание: не забудьте добавить в php файл declare(strict_types=1);
, если вы используйте подход строгой типизации и не хотите чтобы значения неявно приводились к указанным вами типам.
Гибкое сравнение с помощью ==[править | править код]
== | true | 1 | '1' | '1.0' | '1e0' | '1.0a' | -1 | [0] | NAN | 'abc' | '0a' | '0' | [] | "" | null | 0 | false |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
true | true | true | true | true | true | true | true | true | true | true | true | false | false | false | false | false | false |
1 | true | true | true | true | true | false* | false | false | false | false | false | false | false | false | false | false | false |
'1' | true | true | true | true | true | false | false | false | false | false | false | false | false | false | false | false | false |
'1.0' | true | true | true | true | true | false | false | false | false | false | false | false | false | false | false | false | false |
'1e0' | true | true | true | true | true | false | false | false | false | false | false | false | false | false | false | false | false |
'1.0a' | true | false* | false | false | false | true | false | false | false | false | false | false | false | false | false | false | false |
-1 | true | false | false | false | false | false | true | false | false | false | false | false | false | false | false | false | false |
[0] | true | false | false | false | false | false | false | true | false | false | false | false | false | false | false | false | false |
NAN | true | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false |
'abc' | true | false | false | false | false | false | false | false | false | true | false | false | false | false | false | false* | false |
'0a' | true | false | false | false | false | false | false | false | false | false | true | false | false | false | false | false* | false |
'0' | false | false | false | false | false | false | false | false | false | false | false | true | false | false | false | true | true |
[] | false | false | false | false | false | false | false | false | false | false | false | false | true | false | true | false | true |
"" | false | false | false | false | false | false | false | false | false | false | false | false | false | true | true | false* | true |
null | false | false | false | false | false | false | false | false | false | false | false | false | true | true | true | true | true |
0 | false | false | false | false | false | false | false | false | false | false* | false* | true | false | false* | true | true | true |
false | false | false | false | false | false | false | false | false | false | false | false | true | true | true | true | true | true |
* true до PHP 8.0.0. |
Тождественное сравнение с помощью ===[править | править код]
=== | 15 | 017 | 0xf | 0b1111 | 1.0 | 1e0 | 1.0001 | 1.0…01 | NAN | INF | 1.8e308 | 1.8e307 | "n" | 'n' | '\n' | "\n" | array(1) | [1] |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
15 | true | true | true | true | false | false | false | false | false | false | false | false | false | false | false | false | false | false |
017 | true | true | true | true | false | false | false | false | false | false | false | false | false | false | false | false | false | false |
0xf | true | true | true | true | false | false | false | false | false | false | false | false | false | false | false | false | false | false |
0b1111 | true | true | true | true | false | false | false | false | false | false | false | false | false | false | false | false | false | false |
1.0 | false | false | false | false | true | true | false | true | false | false | false | false | false | false | false | false | false | false |
1e0 | false | false | false | false | true | true | false | true | false | false | false | false | false | false | false | false | false | false |
1.0001 | false | false | false | false | false | false | true | false | false | false | false | false | false | false | false | false | false | false |
1.0…01 | false | false | false | false | true | true | false | true | false | false | false | false | false | false | false | false | false | false |
NAN | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false |
INF | false | false | false | false | false | false | false | false | false | true | true | false | false | false | false | false | false | false |
1.8e308 | false | false | false | false | false | false | false | false | false | true | true | false | false | false | false | false | false | false |
1.8e307 | false | false | false | false | false | false | false | false | false | false | false | true | false | false | false | false | false | false |
"n" | false | false | false | false | false | false | false | false | false | false | false | false | true | true | false | false | false | false |
'n' | false | false | false | false | false | false | false | false | false | false | false | false | true | true | false | false | false | false |
'\n' | false | false | false | false | false | false | false | false | false | false | false | false | false | false | true | false | false | false |
"\n" | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false | true | false | false |
array(1) | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false | true | true |
[1] | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false | false | true | true |