Giới thiệu
Trong thuật ngữ lập trình hướng đối tượng, phương thức khởi tạo là một phương thức được định nghĩa bên trong một lớp được gọi tự động tại thời điểm tạo đối tượng. Mục đích của phương thức khởi tạo là khởi tạo đối tượng. Trong PHP, một phương thức có tên đặc biệt __construct hoạt động như một phương thức khởi tạo.
Cú pháp
__construct ([ mixed $args = "" [, $... ]] ) : void
Ví dụ về khối mã lệnh
Ví dụ này cho thấy rằng hàm tạo được tự động thực thi khi đối tượng được khai báo
Ví dụ
<?php class myclass{ function __construct(){ echo "object initialized"; } } $obj=new myclass(); ?>
Đầu ra
Điều này sẽ tạo ra kết quả sau. -
Đối tượngobject initialized
Hàm tạo có đối số
Thuộc tính lớp được khởi tạo bởi phương thức khởi tạo với các đối số
Ví dụ
<?php class rectangle{ var $height; var $width; function __construct($arg1, $arg2){ $this->height=$arg1; $this->width=$arg2; } function show(){ echo "Height=$this->height Width=$this->width"; } } $obj=new rectangle(10,20); $obj->show(); ?>
Đầu ra
Điều này sẽ tạo ra kết quả sau. -
Height=10 Width=20
Hàm tạo trong kế thừa
Nếu lớp cha có phương thức khởi tạo được xác định trong đó, thì nó có thể được gọi trong phương thức khởi tạo của lớp con bằng cha ::__ construct . Tuy nhiên, nếu lớp con không định nghĩa một phương thức khởi tạo, thì nó sẽ kế thừa cùng một phương thức từ là lớp cơ sở.
Ví dụ
<?php class a{ function __construct(){ echo "this is a constructor of base class\n"; } } class b extends a{ function __construct(){ parent::__construct(); echo "this a constructor class b\n"; } } class c extends a { // } $a=new a(); $b=new b(); $c=new c(); ?>
Đầu ra
Điều này sẽ tạo ra kết quả sau. -
this is a constructor of base class this is a constructor of base class this a constructor class b this is a constructor of base class
Trình hủy
Bộ hủy là một phương thức tự động ngay sau khi bộ thu gom rác phát hiện ra rằng một đối tượng cụ thể không còn tham chiếu nào nữa. Trong PHP, phương thức hủy được đặt tên là __destruct . Trong quá trình tắt máy cũng vậy, các đối tượng sẽ bị phá hủy. Phương thức hủy không nhận bất kỳ đối số nào, cũng không trả về bất kỳ kiểu dữ liệu nào
Ví dụ
<?php class myclass{ function __construct(){ echo "object is initialized\n"; } function __destruct(){ echo "object is destroyed\n"; } } $obj=new myclass(); ?>
Đầu ra
Điều này sẽ hiển thị kết quả sau
Đối tượngobject is initialized object is destroyed