วิธีการ __destruct

ฟังก์ชัน __destruct เป็นเมธอดมหัศจรรย์ใน PHP ซึ่งถูกเรียกอัตโนมัติเมื่อลบวัตถุออกจากหน่วยความจำ สิ่งนี้เกิดขึ้นเมื่อสคริปต์ทำงานเสร็จสิ้น หรือเมื่อวัตถุถูกทำลายอย่างชัดเจน เมธอดมีประโยชน์สำหรับการปล่อยทรัพยากร (เช่น การปิดไฟล์เดสคริปเตอร์หรือการเชื่อมต่อกับฐานข้อมูล)

ไวยากรณ์

phpclass MyClass {
  public function __destruct() {
    // รหัสตัวทำลาย
  }
}

ตัวอย่าง

ตัวอย่างง่ายๆ ของคลาสที่มีตัวทำลาย ซึ่งแสดงข้อความเมื่อวัตถุถูกทำลาย:

php<?php
class Test {
  public function __destruct() {
    echo 'Object destroyed';
  }
}

$obj = new Test();
unset($obj); // จะเรียกตัวทำลาย
?>

ผลลัพธ์จากการรันโค้ด:

php'Object destroyed'

ตัวอย่าง

ตัวอย่างการปล่อยทรัพยากร (การปิดไฟล์):

php<?php
class FileHandler {
  private $file;

  public function __construct($filename) {
    $this->file = fopen($filename, 'r');
  }

  public function __destruct() {
    if ($this->file) {
      fclose($this->file);
      echo 'File closed';
    }
  }
}

$handler = new FileHandler('example.txt');
// ทำงานกับไฟล์...
unset($handler); // จะปิดไฟล์โดยอัตโนมัติ
?>

ผลลัพธ์จากการรันโค้ด:

php'File closed'

ดูเพิ่มเติม

  • เมธอด __construct,
    ซึ่งเป็นตัวสร้างคลาส