class Money {
public function __construct(
public readonly int $amount,
public readonly string $currency,
) {}
}
$price = new Money(100, 'RUB');
echo $price->amount; // 100
$price->amount = 200; // Error: Cannot modify readonly property
PHP 8.2 добавил readonly class — все свойства класса автоматически становятся readonly. Не нужно писать модификатор для каждого.
readonly class Point {
public function __construct(
public float $x,
public float $y,
) {}
}