هنگاميگه اسكريپت متوقف شود ويا اجرايش پايان يابد، تابع تخريبگر فراخوان ميشود واشياء كلاس خودرا تخريب ميكند.
در صورتيكه تابع__destruct( ) در كلاس شئ ايجادشود، php بصورت خودكار در هنگام توقف يا اتمام اسكريپت،آن تابع رافراخواتي ميكند.
توجه كنيد كه تابع تخريب كننده با دو زير خطنكته -"__" شروع ميشود.
مثال ـ در مثال زير كلاسfurit داراي تابع سازنده__construct() وتابع تخريبگر __destruct() ميباشد .اين توابع بصورت خودكار به ترتيب درايجاد شئي وپايان اسكريپت اجرا ميشوند.
<?php class Fruit { public $name; public $color; function __construct($name) { $this->name = $name; } function __destruct() { echo "The fruit is {$this->name}."; } } $apple = new Fruit("Apple"); ?>
مثال ـ در مثال بالا تابع سازنده فقط ويژگي نام را مقدار دهي ميكرد، اما در مثال زير ويژگي نام ورنگ را.
<?php class Fruit { public $name; public $color; function __construct($name, $color) { $this->name = $name; $this->color = $color; } function __destruct() { echo "The fruit is {$this->name} and the color is {$this->color}."; } } $apple = new Fruit("Apple", "red"); ?>
نكته ـ تابع سازنده وتخريبگر در كلاس باعث كاهش كد دراسكريپت ميشوند، ومفيد خواهند بود. تابع تخريبگر بدون پارامتر ميباشد وباعث افزايش ظرفيت كارائي سيستم ميشود.