Trung BìnhPHP iconPHP

Readonly classes trong PHP 8.2 có những ràng buộc gì?

Readonly classes ngăn sửa đổi các public property sau khi khởi tạo. Ràng buộc cụ thể: mọi property phải có kiểu (không được khai báo untyped), không thể có static property, không dùng được #[AllowDynamicProperties], và mỗi property phải được gán giá trị trong constructor.

Ví dụ: readonly class Address { public function __construct(public string $street, public string $city) {} }. Rất phù hợp để xây dựng Value Object và DTO bất biến.

Ràng buộc kế thừa: readonly class không thể được extend bởi non-readonly class. Child class bắt buộc phải cũng là readonly — đây là ràng buộc của PHP 8.2.

Xem toàn bộ PHP cùng filter theo level & chủ đề con.

Mở danh sách PHP