Что такое constructor property promotion? (PHP 8.0)

Ответ
// До PHP 8.0
class User {
    public string $name;
    public int $age;

    public function __construct(string $name, int $age) {
        $this->name = $name;
        $this->age = $age;
    }
}

// PHP 8.0+ - в 3 раза короче
class User {
    public function __construct(
        public string $name,
        public int $age,
    ) {}
}

// Можно комбинировать с readonly (PHP 8.1)
class User {
    public function __construct(
        public readonly string $name,
        public readonly int $age,
    ) {}
}

Модификатор видимости перед параметром конструктора автоматически создает свойство и присваивает значение.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.