Bài viết

Kho tài liệu và bài viết được chia sẻ, đánh giá bởi cộng đồng

PHP 8: Constructor property promotion

HXD.VN đã tạo 4 năm trước Hoạt động 4 năm trước 3.028 lượt xem 1 bình luận

Nội dung bài viết

Không có mục lục.

    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 promotednormal 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

    Nội dung bài viết

    Không có mục lục.

      Bình luận

      Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

      Đăng nhập
      HXD.VN đã bình luận 4 năm trước

      Cái edit của howkteam làm sai hết tên hàm biến

      Câu hỏi mới nhất