Sobes.tech
Назад к вопросам
Junior — Middle
95

Что нового появилось в PHP 8 по сравнению с предыдущими версиями?

Ответ от нейросети

sobes.tech AI

В PHP 8 появилось множество новых возможностей и улучшений по сравнению с предыдущими версиями:

  • JIT-компиляция (Just-In-Time) — улучшает производительность, компилируя байт-код в машинный во время выполнения.
  • Union Types — теперь можно указывать несколько типов для параметров и возвращаемых значений, например: function foo(int|float $num).
  • Attributes (аннотации) — новый синтаксис для добавления метаданных к классам, методам и т.д., используя #[Attribute].
  • Constructor Property Promotion — сокращенный синтаксис для объявления и инициализации свойств прямо в конструкторе.
  • Match expression — более мощный и безопасный аналог switch, возвращающий значение.
  • Nullsafe operator (?->) — позволяет безопасно обращаться к свойствам и методам объектов, которые могут быть null.
  • Строгая типизация для mixed и улучшения в типах.
  • Новые функции и улучшения синтаксиса, например str_contains(), str_starts_with(), str_ends_with().

Пример использования union types и constructor property promotion:

class User {
    public function __construct(
        private int|string $id,
        private string $name
    ) {}
}

function process(User|int $userOrId) {
    // ...
}

PHP 8 значительно улучшил выразительность и производительность языка.