// readonly свойство (PHP 8.1)
class User {
public function __construct(
public readonly string $name,
public readonly string $email,
) {}
}
$user = new User('John', 'john@example.com');
$user->name = 'Jane'; // Error: Cannot modify readonly property
// readonly класс (PHP 8.2) - все свойства readonly
readonly class Point {
public function __construct(
public float $x,
public float $y,
) {}
}readonly свойство можно установить только один раз (обычно в конструкторе). Нельзя unset. Нельзя изменять после инициализации (даже из самого класса). В PHP 8.3 readonly свойства можно клонировать с изменением.