I am passionate about adopting new technologies and thrive in dynamic environments.
Trong PHP 8 property promotion cho phép bạn kết hợp các trường của class, định nghĩa hàm khởi tạo và các phép gán biến , tất cả thành một cú pháp trong param của hàm __construct.
Trong PHP 8 property promotion cho phép bạn kết hợp các trường của class, định nghĩa hàm khởi tạo và các phép gán biến , tất cả thành một cú pháp trong param của hàm __construct.
Điều này giúp bạn giảm thiểu việc lặp lại code. Nó cho phép bạn kết hợp định nghĩa và khởi tạo các thuộc tính thành một câu lệnh khởi tạo duy nhất.
Ví dụ.
Bình thường bạn sẽ viết như này
Khi áp dụng Constructor Property Promotion thì đoạn code sẽ ngắn gọn như sau:
Một số điều lưu ý:
1. Property promotion chỉ sử dụng được trong constructors.
2. Không cho phép sử dụng trùng lặp:
VD:
Bạn không thể vừa khai báo public string $a
vừa sử dụng promoted property
3. Cho phép các thuộc tính không có kiểu dữ liệu (mixed type/untyped)
4. Promoted properties cho phép bạn khởi tạo giá trị mặc định, tuy nhiên những biểu thức như new ...
thì không được phép
VD:
5. Có thể kết hợp promoted và normal properties
VD:
Tuy có thể đồng thời sử dụng trong construct tuy nhiên bạn chỉ nên chọn 1 kiểu sẽ rõ ràng hơn khi đọc code nhé.
6. Cho phép bạn truy cập đến các promoted properties trong contructor body
7. Doc comments trên promoted properties
8. Không thể dùng trong abstract constructors
9. Được phép dùng trong traits
10. Không hỗ trợ var
11. Variadic parameters (...$xxx) không thể dùng promoted
12 . Inheritance - kế thừa
PHP không cần phải tuân theo khai báo của parent constructor, nên có rất ít điều để nói: được phép thừa kế . Nếu bạn cần chuyển các thuộc tính từ hàm khởi tạo con sang hàm tạo cha, bạn sẽ cần chuyển chúng theo cách thủ công:
Bài viết tham khảo từ các nguồn trên mạng và từ blog Chung Nguyễn Blog
Your email address will not be published. Required fields are marked *