วิธีการ __destruct
ฟังก์ชัน __destruct เป็นเมธอดมหัศจรรย์ใน PHP ซึ่งถูกเรียกอัตโนมัติเมื่อลบวัตถุออกจากหน่วยความจำ สิ่งนี้เกิดขึ้นเมื่อสคริปต์ทำงานเสร็จสิ้น หรือเมื่อวัตถุถูกทำลายอย่างชัดเจน เมธอดมีประโยชน์สำหรับการปล่อยทรัพยากร (เช่น การปิดไฟล์เดสคริปเตอร์หรือการเชื่อมต่อกับฐานข้อมูล)
ไวยากรณ์
class MyClass {
public function __destruct() {
// รหัสตัวทำลาย
}
}
ตัวอย่าง
ตัวอย่างง่ายๆ ของคลาสที่มีตัวทำลาย ซึ่งแสดงข้อความเมื่อวัตถุถูกทำลาย:
<?php
class Test {
public function __destruct() {
echo 'Object destroyed';
}
}
$obj = new Test();
unset($obj); // จะเรียกตัวทำลาย
?>
ผลลัพธ์จากการรันโค้ด:
'Object destroyed'
ตัวอย่าง
ตัวอย่างการปล่อยทรัพยากร (การปิดไฟล์):
<?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); // จะปิดไฟล์โดยอัตโนมัติ
?>
ผลลัพธ์จากการรันโค้ด:
'File closed'
ดูเพิ่มเติม
-
เมธอด
__construct,
ซึ่งเป็นตัวสร้างคลาส