Что такое property hooks? (PHP 8.4)

Ответ
class User {
    // Виртуальное свойство с хуками get/set
    public string $fullName {
        get => "$this->firstName $this->lastName";
        set(string $value) {
            [$this->firstName, $this->lastName] = explode(' ', $value, 2);
        }
    }

    // Хук только для set (валидация)
    public string $email {
        set(string $value) {
            if (!filter_var($value, FILTER_VALIDATE_EMAIL)) {
                throw new InvalidArgumentException();
            }
            $this->email = $value;
        }
    }
}

Property hooks заменяют getters/setters и делают API чище. Это аналог C# properties. Свойства с хуками работают с readonly, интерфейсами и абстрактными классами.

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