Система типов

Язык PHP использует систему номинальных типов с сильным отношением поведенческого подтипирования. PHP проверяет отношение подтипов во время компиляции, тогда как контроль типов язык выполняет динамически во время выполнения.

Система типов PHP поддерживает атомарные типы, которые разрешено объединять, чтобы создавать сложные типы. Часть этих типов допустимо записывать в объявлениях типов.

Атомарные типы

Отдельные атомарные типы — это встроенные типы, которые тесно интегрированы с языком и которые невозможно воспроизвести пользовательским определением типов.

Список базовых типов:

Составные типы

Возможно объединение нескольких атомарных типов в составные типы. PHP разрешает объединять типы следующими способами:

  • Пересечение класс-типов (интерфейсов и названий классов).
  • Объединение типов.

Пересечение типов

Пересечение типов принимает значения, которые удовлетворяют не одному, а одновременно нескольким объявлениям класс-типов. Отдельные пересекающиеся типы соединяются символом &. Поэтому пересечение типов T, U и V, будет записано как T&U&V.

Объединение типов

Объединение типов принимает значения нескольких отличающихся типов, а не одного. Отдельные объединяемые типы соединяются символом |. Поэтому объединение типов T, U и V, будет записано как T|U|V. Если при объединении типов добавляют пересечение типов, то пересечение типов берут в скобки для записи в дизъюнктивной нормальной форме (DNF): T|(X&Y).

Псевдонимы типов

PHP поддерживает два псевдонима типов: mixed и iterable, которые соответствуют (в том же порядке) объединению типов object|resource|array|string|float|int|bool|null и Traversable|array.

Замечание: PHP не поддерживает определяемые пользователем псевдонимы типов.

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top