Computer >> Máy Tính >  >> Lập trình >> PHP

Có lợi thế nào khi sử dụng __construct () thay vì tên của lớp cho một hàm tạo trong PHP không?


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.