Readonly class chặn sửa đổi public property sau khi khởi tạo:
php
readonly class Address {
public function __construct(
public string $street,
public string $city,
) {}
}Ràng buộc: mọi property phải có kiểu (không được untyped), không được khai báo static property, không dùng được #[AllowDynamicProperties], và mỗi property phải được gán giá trị ngay trong constructor.
Rất hợp để dựng Value Object và DTO bất biến.
Ràng buộc kế thừa: readonly class không thể bị một class không readonly kế thừa — class con bắt buộc cũng phải readonly. Đây là quy tắc bắt buộc của PHP 8.2.