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

Các trình tạo và hủy cấu trúc PHP

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ượng
object 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ượng
object is initialized
object is destroyed