Перейти к содержанию

PHP Шпаргалки: различия между версиями

3840 байт добавлено ,  16:54, 12 ноября 2022
нет описания правки
Нет описания правки
 
(не показано 7 промежуточных версий этого же участника)
Строка 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"
{| class="wikitable"
|+ Примеры приведения типов
|+ Примеры приведения типов в PHP 8+
! $v = ...
! $v = ...
!Тип
!Тип
Строка 128: Строка 240:
| <code>""</code>
| <code>""</code>


| [ ]
| '''[ ]'''
| { }**
| '''{ }**'''
|-
|-
! true
! true
Строка 143: Строка 255:
| "1"
| "1"


| [true]
| [0=>true]
| {"scalar":true}**
| {"scalar":true}**
|-
|-
Строка 158: Строка 270:
| <code>""</code>
| <code>""</code>


| [false]
| [0=>false]
| {"scalar":false}**
| {"scalar":false}**
|-
|-
Строка 173: Строка 285:
| "0"
| "0"


| [0]
| [0=>0]
| {"scalar":0}**
| {"scalar":0}**
|-
|-
Строка 188: Строка 300:
| "1"
| "1"


| [1]
| [0=>1]
| {"scalar":1}**
| {"scalar":1}**
|-
|-
! 1.0
! 1.99
|float
|float
| '''"double"'''
| '''"double"'''
Строка 197: Строка 309:
| true
| true


| int(1)
| '''int(1)***'''


| float(1)
| float(1.99)


| "1"
| "1.99"


| [1]
| [0=>1.99]
| {"scalar":1}**
| {"scalar":1.99}**
|-
|-
! M_PI
! M_PI
Строка 212: Строка 324:
| true
| true


| '''int(3)***'''
| int(3)


| float(3.1...)
| float(3.1...)
Строка 218: Строка 330:
| "3.14159..."
| "3.14159..."


| [3.14159...]
| [0=>3.14159...]
| {"scalar":3.141...}**
| {"scalar":3.141...}**
|-
|-
Строка 227: Строка 339:
| true
| true


| int(0)
| '''int(0)'''


| float(INF)
| float(INF)
Строка 233: Строка 345:
| '''"INF"'''
| '''"INF"'''


| [INF]
| [0=>INF]


| {"scalar":INF}**
| {"scalar":INF}**
Строка 250: Строка 362:
| '''"NAN"'''
| '''"NAN"'''


| [NAN]
| [0=>NAN]


| {"scalar":NAN}**
| {"scalar":NAN}**
Строка 267: Строка 379:
| <code>""</code>
| <code>""</code>


| [<code>""</code>]
| [0=><code>""</code>]
| {"scalar":<code>""</code>}**
| {"scalar":<code>""</code>}**
|-
|-
Строка 282: Строка 394:
| "0"
| "0"


| ["0"]
| [0=>"0"]
| {"scalar":"0"}**
| {"scalar":"0"}**
|-
|-
Строка 297: Строка 409:
| "1"
| "1"


| ["1"]
| [0=>"1"]
| {"scalar":"1"}**
| {"scalar":"1"}**
|-
|-
Строка 312: Строка 424:
| "true"
| "true"


| ["true"]
| [0=>"true"]
| {"scalar":"true"}**
| {"scalar":"true"}**
|-
|-
Строка 327: Строка 439:
| "false"
| "false"


| ["false"]
| [0=>"false"]
| {"scalar":"false"}**
| {"scalar":"false"}**
|-
|-
Строка 344: Строка 456:
| { }**
| { }**
|-
|-
! [0]
! [1,2]
|array
|array
| "array"
| "array"
Строка 355: Строка 467:


| style="background-color: #ffff66" | '''"Array" *'''
| style="background-color: #ffff66" | '''"Array" *'''
| [0]
| [0=>1,1=>2]
| '''{"0":0}**'''
| {'''"0"''':1,'''"1"''':2}**
|-
|-
! ["abc"]
! ["3"=>"a","B",4=>"c"]
|array
|array
| "array"
| "array"
Строка 369: Строка 481:


| style="background-color: #ffff66" | '''"Array" *'''
| style="background-color: #ffff66" | '''"Array" *'''
| ["abc"]
| '''[3=>"a",4=>"c"]'''
| '''{"0":"abc"}**'''
| {'''"3"''':"a",'''"4"''':"c"}**
|-
|-
! ["a"=>"b"]
! ["a"=>"b","b"]
|array
|array
| "array"
| "array"
Строка 383: Строка 495:


| style="background-color: #ffff66" | '''"Array" *'''
| style="background-color: #ffff66" | '''"Array" *'''
| ["a"=>"b"]
| ["a"=>"b",'''0=>'''"b"]
| {"a":"b"}**
| {"a":"b",'''"0"''':"b"}**
|-
|-
! [["a"=>"b"]]
! [["a"=>"b"]]
Строка 431: Строка 543:
|'''"object"'''
|'''"object"'''
|true
|true
|int(1)*
| style="background-color: #ffff66" | int(1)*
|float(1)*
| style="background-color: #ffff66" | float(1)*
|'''Fatal error'''
| style="background-color: #ff6666" | '''Fatal error'''
|[''<small>object(Closure)</small>'']
|[''<small>object(Closure)</small>'']
|''object(Closure)''
|''object(Closure)''
Строка 468: Строка 580:
|-
|-
! <sub>Примечания:</sub>
! <sub>Примечания:</sub>
|
| colspan="2" | <sub>* E_WARNING</sub>
| colspan="2" style="background-color: #ffff66" | <sub>* E_WARNING</sub>
| colspan="3" | <sub>** { } - обозначение для object(stdClass)</sub>
| colspan="3" | <sub>** { } - обозначение для object(stdClass)</sub>
| colspan="2" style="background-color: #ff6666" | <sub>*** округление в меньшую сторону</sub>
| colspan="3" | <sub>*** округление в меньшую сторону</sub>
|-
|-
|}
|}
До версии PHP < 7.3 при приведении массива к объекту ключи оставались цифрами: {0:1} вместо {"0":1}. До версии 8.0 типы ошибок были менее строгие. В остальном в старых версиях приведение работает аналогично.


== Объявление типов для строгой типизации ==
== Объявление типов для строгой типизации ==
Строка 1348: Строка 1460:
|-
|-
|}
|}
[[Категория:Шпаргалки]]