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. Это делает ненужными многие геттеры.