Có, có một số lợi ích khi sử dụng hàm ma thuật __construct () thay vì tên của lớp. Chúng được liệt kê bên dưới -
- Hàm ma thuật __construct được giới thiệu trong PHP 5.4. Một lợi thế của việc sử dụng __construct () thay vì ClassName () làm hàm tạo là nếu bạn thay đổi tên của lớp, bạn không cần cập nhật hàm tạo hỗ trợ khái niệm DRY (đừng lặp lại chính mình).
- Nếu bạn có một lớp con, bạn có thể gọi cha ::__ construct () để gọi hàm tạo cha một cách dễ dàng.
Ví dụ
<?php class myclass{ public function __construct(){ echo 'The class "', __CLASS__, '" was initiated!'."\n"; } } class childclass extends myclass{ public function __construct() { parent::__construct(); print "In SubClass constructor "; } } $myobj = new childclass(); ?>
Đầu ra
The class "myclass" was initiated! In SubClass constructor
Lưu ý
"__CLASS__" được gọi là hằng số ma thuật, trong trường hợp này, trả về tên của lớp mà nó được gọi.
Các hàm tạo kiểu cũ KHÔNG ĐƯỢC SỬ DỤNG trong PHP 7.0 và sẽ bị xóa trong phiên bản tương lai. Bạn nên luôn sử dụng __construct () trong mã mới.