Что такое асимметричная видимость свойств? (PHP 8.4)

Ответ
class User {
    // Чтение публичное, запись приватная
    public private(set) string $name;

    // Чтение публичное, запись защищенная (для наследников)
    public protected(set) int $age;

    public function __construct(string $name, int $age) {
        $this->name = $name;  // OK - внутри класса
        $this->age = $age;
    }
}

$user = new User('John', 30);
echo $user->name;          // OK
$user->name = 'Jane';     // Error: Cannot modify

Уровень видимости для set не может быть шире, чем для get. Это делает ненужными многие геттеры.

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