Карточка Middle Типы и строгая типизация обновлено

Строгая типизация в современном PHP

Вопрос

Как сделать PHP-код максимально строго типизированным?

Попробуйте сами

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

Показать ответ и разбор

Коротко

- declare(stricttypes=1); в каждом файле. - Типы у всех параметров, возвращаемых значений и свойств (typed properties с 7.4). - readonly-свойства и классы для неизменяемых данных. - Статический анализ: PHPStan или Psalm на высоком уровне в CI. - Generics в PHPDoc (@param list<User, @return array<int, string) для…

Ответ

  • declare(strict_types=1); в каждом файле.
  • Типы у всех параметров, возвращаемых значений и свойств (typed properties с 7.4).
  • readonly-свойства и классы для неизменяемых данных.
  • Статический анализ: PHPStan или Psalm на высоком уровне в CI.
  • Generics в PHPDoc (@param list<User>, @return array<int, string>) для анализаторов.

Разбор

Рантайм-проверки ловят ошибки при выполнении, анализатор находит их до запуска.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.