OOP - Destructor

🔹 Destructor چیست؟

Destructor یک متد ویژه در کلاس است که با نام ()construct__ تعریف می‌شود.
این متد به صورت خودکار وقتی یک شیء نابود می‌شود یا اجرای اسکریپت به پایان می‌رسد، فراخوانی می‌شود.

🔹 کاربرد Destructor

  • بستن اتصال به دیتابیس

  • آزاد کردن منابع (مثل فایل باز شده یا حافظه)

  • اجرای کارهای نهایی قبل از نابودی شیء

🔹 مثال ساده

<?php class Car { public $brand; // Constructor function __construct($brand) { $this->brand = $brand; } // Destructor function __destruct() { echo "The car is a {$this->brand}."; } } $myCar = new Car("BMW"); ?>

📌 خروجی هنگام پایان اجرای اسکریپت:

The car is a BMW.

🔹 Destructor چه زمانی اجرا می‌شود؟

  1. وقتی اسکریپت به پایان می‌رسد.

  2. وقتی شیء به صورت دستی نابود شود (مثلاً با unset($object);).

🔹 مثال با فایل

<?php class FileHandler { private $file; function __construct($filename) { $this->file = fopen($filename, "w"); echo "File opened.<br>"; } function writeData($data) { fwrite($this->file, $data); } function __destruct() { fclose($this->file); echo "File closed."; } } $myFile = new FileHandler("test.txt"); $myFile->writeData("Hello, world!"); ?>

📌 خروجی مرورگر:

File opened. File closed.

📌 نتیجه: فایل بعد از پایان اجرای اسکریپت به طور خودکار بسته می‌شود.

✅ خلاصه

  • Destructor با متد ()construct__ تعریف می‌شود.

  • به طور خودکار هنگام نابودی شیء یا پایان اسکریپت اجرا می‌شود.

  • برای آزادسازی منابع و اجرای کارهای پایانی استفاده می‌شود.