Ответ вслух Middle PHP 8.x: enum, readonly, match спрашивают часто обновлено

Современный PHP: что изменилось

Вопрос

Чем современный PHP 8.3 отличается от PHP 5 и 7, и что из новинок вы реально используете?

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

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

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

Коротко

Современный PHP это быстрый язык со строгой системой типов. PHP 7 переписал внутренние структуры и примерно удвоил скорость, OPcache стал стандартом, а в PHP 8 появился JIT.

Что должно прозвучать в ответе

  • Производительность: PHP 7 ускорил движок вдвое, OPcache и JIT

  • Типизация: скалярные типы, union types, typed properties, readonly, enum

  • Синтаксис: match, nullsafe, именованные аргументы, продвижение свойств, стрелочные функции

  • Ошибки движка как исключения Error, строже числовые строки и сравнения

  • Атрибуты вместо аннотаций в PHPDoc

  • Экосистема: Composer, PSR, статический анализ

Что могут спросить следом

  • Какие новинки 8.x ломают обратную совместимость?
  • Зачем readonly-классы?

Разбор

Современный PHP это быстрый язык со строгой системой типов. PHP 7 переписал внутренние структуры и примерно удвоил скорость, OPcache стал стандартом, а в PHP 8 появился JIT.

В типах изменилось почти всё: скалярные типы и возвращаемые типы, типизированные свойства, union types, readonly, перечисления. В своём коде я использую enum для статусов вместо строковых констант, readonly-классы для DTO и объектов-значений, продвижение свойств в конструкторе, match вместо switch, nullsafe-оператор и именованные аргументы для функций с множеством необязательных параметров.

Поведение стало строже: ошибки движка стали исключениями Error, сравнение чисел со строками больше не даёт абсурдов вроде 0 == "abc", а нечисловые строки в арифметике бросают TypeError. Аннотации в комментариях заменяются атрибутами, которые читает рефлексия. Вокруг этого зрелая экосистема: Composer, стандарты PSR, PHPStan и Psalm, Rector для автоматического обновления кода.

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

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

Термины по теме