🚀 PHP 8.0
JIT-компиляция: Just-In-Time компилятор улучшает производительность, особенно в вычислительных задачах.
Атрибуты (аннотации): Позволяют добавлять метаданные к классам, методам и свойствам, улучшая читаемость и поддержку кода.
Сопоставление с образцом (match expression): Более строгая и удобная альтернатива конструкции
switch.Промоция свойств конструктора: Уменьшает количество кода при объявлении свойств в конструкторе.
Объединённые типы (union types): Позволяют указывать несколько типов для параметров и возвращаемых значений.
Оператор nullsafe (
?->): Упрощает работу с возможными null значениями, предотвращая ошибки.Новые строки функций:
str_contains(), str_starts_with(), str_ends_with() — для удобной работы со строками.Интерфейс
Stringable: Упрощает работу с объектами, которые могут быть приведены к строке.Функция
get_debug_type(): Предоставляет точный тип переменной для отладки.🔧 PHP 8.1
Перечисления (enums): Позволяют создавать наборы констант с типовой безопасностью.
Только для чтения свойства (
readonly): Свойства, которые можно инициализировать только один раз.Тип
never: Указывает, что функция никогда не возвращает значение (например, всегда выбрасывает исключение).Синтаксис для первого класса callable: Упрощает создание и использование функций как объектов.
Fibers: Позволяют реализовывать кооперативную многозадачность, полезно для асинхронного кода.
🧪 PHP 8.2
Типы
null, false, true как отдельные типы: Улучшает типовую безопасность.Динамические свойства устарели: Предотвращает ошибки при случайном добавлении свойств в объекты.
Атрибут
#[SensitiveParameter]: Помечает параметры, содержащие чувствительную информацию, для предотвращения их логирования.🔍 PHP 8.3
Типизация констант классов: Позволяет задавать типы для констант внутри классов.
Атрибут
#[\Override]: Указывает, что метод переопределяет родительский.Глубокое копирование только для чтения свойств: Обеспечивает корректное поведение при копировании объектов.
Новые функции для работы с случайными значениями: Упрощают генерацию случайных данных.
🧩 PHP 8.4
Хуки свойств (Property Hooks): Возможность определять логику для геттеров и сеттеров непосредственно в свойстве, что упрощает код и уменьшает количество шаблонного кода.
Асимметричная видимость (Asymmetric Visibility): Позволяет задавать разные уровни доступа для чтения и записи свойств, например, сделать свойство доступным только для чтения.
Инстанцирование классов без скобок: Теперь можно вызывать методы сразу после создания объекта без необходимости оборачивать конструкцию в дополнительные скобки.
Новые функции для работы с массивами:
array_find(), array_find_key(), array_any(), array_all() упрощают поиск и проверку элементов в массивах. Поддержка HTML5 в расширении DOM: Расширение DOM теперь поддерживает HTML5, улучшая работу с современными веб-страницами.
Новые функции для работы со строками:
mb_trim(), mb_ucfirst(), mb_lcfirst() предоставляют дополнительные возможности для обработки многобайтовых строк. Поддержка HTTP/3 в cURL: Добавлены константы
CURL_HTTP_VERSION_3 и CURL_HTTP_VERSION_3ONLY для работы с протоколом HTTP/3. Новые методы для DateTimeImmutable: Методы
createFromTimestamp() и get/setMicrosecond() облегчают работу с временными метками и микросекундами.