Hướng dẫn php 8 class constructor - hàm tạo lớp php 8
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. Show
Đ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: 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.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 8 vừa sử dụng promoted property3. 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ư 9 thì không được phépkhông được phépVD:
5. Có thể kết hợp promoted và normal propertiespromoted 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ợ 0 011. Variadic parameters (...$xxx) không thể dùng promoted 112 . 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:đượ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: 2Bài viết tham khảo từ các nguồn trên mạng và từ blog Chung Nguyễn Blog 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 Bạn có thể viết lại như thế này: Ý tưởng cơ bản rất đơn giản: tất cả các thuộc tính của lớp và các phép gán biến và tiền tố (public, protected, private) của các tham số của hàm khởi tạo PHP sẽ lấy cú pháp mới đó và chuyển đổi nó thành cú pháp bình thường, trước khi thực sự thực thi mã. Đoạn mã sau khi được chuyển đổi trước khi thực thi: chỉ có thể sử dụng trong contructors, hãy nhớ nhé. Bạn không thể vừa khai báo Cho phép các thuộc tính vô kiểu (mixed type/untyped)
Simple defaultsPromoted 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ư 9 thì không được phépkhông được phép
Có thể kết hợp promoted và normal properties
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 Cho phép bạn truy cập đến các promoted properties trong contructor body
Doc comments trên promoted properties
Không thể dùng trong abstract constructorsabstract constructors
Được phép dùng trong traits
Không hỗ trợ class MyDTO { public function __construct( public $untyped, ) {} }0 0Variadic parameters (...$xxx) không thể dùng promoted 1Inheritance - kế thừaPHP 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:đượ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: 2Dịch và tham khảo từ: stitcher.io Ủng hộ Chung Nguyễn BlogChung Nguyễn Blog sử dụng FlashVPS - Dịch vụ quản trị máy chủ chuyên nghiệp để quản lý VPS #FlashVPS là dịch vụ cloud panel trên nền tảng web hỗ trợ khách hàng:
Các bài viết trên website thường xuyên được đăng tải và cập nhật trên trang Facebook Chung Nguyễn Blog hãy tặng cho Chung một LIKE nhé! Mãi yêu các bạn!LIKE nhé! Mãi yêu các bạn! 813 👍 Đánh giá bài viếtPHP 8: Constructor property promotion 5/5 1 votes /5 1 votes |