تخریب کننده یا destruct در php چیست

در قسمت قبل درباره سازنده ها در php توضیح مفصلی ارائه کردیم. کلاس ها علاوه بر سازنده ها، دارای متد ویژه ای به نام destruct هستند.

این یک متد ویژه است که به محض اینکه ارجاعی به شی ایجاد شده از کلاس وجود نداشته باشد، فراخوانی میشود. این متد قبل از جمع آوری شی، توسط آشغال جمع‌کن در php یا Garbage Collector، فراوخوانی میشود.

برای تعریف یک destruct به صورت زیر عمل میکنیم.

class Test {

    // ...

    function __destruct() {
        echo 'Destructed.';
    }

}

 می توانید از کلاس بالا یک شی ایجاد کنید، و از تابع unset استفاده کنید. این کار باعث میشود که به صورت دستی تمام ارجاع ها به شی حذف شود.

class Test {

    // ...
    function __destruct() {
        echo 'Destructed.';
    }
}

$obj = new Test();

unset($obj); // خروجی: Destructed