Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

ตัวสร้าง PHP และตัวทำลาย


แนะนำตัว

ในคำศัพท์การเขียนโปรแกรมเชิงวัตถุ นวกรรมิกคือวิธีการที่กำหนดไว้ภายในคลาสที่ถูกเรียกโดยอัตโนมัติในเวลาที่สร้างวัตถุ วัตถุประสงค์ของวิธีการสร้างคือการเริ่มต้นวัตถุ ใน PHP วิธีการของชื่อพิเศษ __construct ทำหน้าที่เป็นตัวสร้าง

ไวยากรณ์

__construct ([ mixed $args = "" [, $... ]] ) : void

ตัวอย่างตัวสร้าง

ตัวอย่างนี้แสดงว่า Constructor ทำงานโดยอัตโนมัติเมื่อมีการประกาศอ็อบเจ็กต์

ตัวอย่าง

<?php
class myclass{
   function __construct(){
      echo "object initialized";
   }
}
$obj=new myclass();
?>

ผลลัพธ์

ซึ่งจะให้ผลลัพธ์ตามมา −

object initialized

ตัวสร้างพร้อมอาร์กิวเมนต์

คุณสมบัติคลาสเริ่มต้นโดยคอนสตรัคเตอร์พร้อมอาร์กิวเมนต์

ตัวอย่าง

<?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();
?>

ผลลัพธ์

ซึ่งจะให้ผลลัพธ์ตามมา −

Height=10 Width=20

ตัวสร้างในมรดก

หากคลาสพาเรนต์มีคอนสตรัคเตอร์ที่กำหนดไว้ ก็สามารถเรียกคลาสนั้นภายในคอนสตรัคเตอร์ของคลาสลูกโดย parent::__construct . อย่างไรก็ตาม หากคลาสลูกไม่ได้กำหนดคอนสตรัคเตอร์ คลาสนั้นจะสืบทอดมาจากคลาสฐาน

ตัวอย่าง

<?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();
?>

ผลลัพธ์

ซึ่งจะให้ผลลัพธ์ตามมา −

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

ตัวทำลาย

Destructor เป็นวิธีการโดยอัตโนมัติทันทีที่ตัวรวบรวมขยะพบครีบที่วัตถุนั้นไม่มีการอ้างอิงอีกต่อไป ใน PHP วิธีการ destructor มีชื่อว่า __destruct . ในระหว่างลำดับการปิดระบบด้วย วัตถุจะถูกทำลาย เมธอด Destructor ไม่รับอาร์กิวเมนต์ใดๆ และไม่ส่งคืนประเภทข้อมูลใดๆ

ตัวอย่าง

<?php
class myclass{
   function __construct(){
      echo "object is initialized\n";
   }
   function __destruct(){
      echo "object is destroyed\n";
   }
}
$obj=new myclass();
?>

ผลลัพธ์

ซึ่งจะแสดงผลดังต่อไปนี้

object is initialized
object is destroyed