سلام جناب دکتر وققتون بخیر;
استاد شما گفتید که وقتی destruct صدا زده میشود می آید Object را از memory حذف میکند، سوال من این هست که این کار را خودش به صورت اتوماتیک انجام می دهد بدون اینکه حتی ما unset کرده باشیم در destruct
سلام و احترام
اگر شما از مجیک متد destruct استفاده نکنید این اتفاق نخواهد افتاد. اما زمانی که شما از این مجیک متد استفاده می کنید میتونید هر عملیاتی را در آن پیاده سازی کنید. همان طور که میدانید این مجیک متد زمانی اجرا می شود که دیگر refrenceی به آبجت شما نباشد (ینی اینکه دیگه از آبجکت استفاده نکنید). برای مثال:
class Example
{
function __destruct()
{
echo "An object dies.";
}
}
$a = new Example();
unset($a);
خروجی:
An object dies.
اگه سوالتی بود باز بپرسید تا رفع ابهام کنیم
موفق باشید
متد destruct زمانی که هیچ رفرنسی به آبجکت وجود نداشته باشه صدا زده میشه.
اگر سوالت اینه که چه زمانی رفرنسی به آبجکت وجود نداره؟
ن نیازی نیست که شما object رو دستی از بین ببرید چون همون طور که اشاره شد اگر رفرنسی به object وجود نداشته باشه، خذف خواهد شد.
مجیک متد destruct هم زمانی که میخواد این object رو از بین ببره اجرا میشه و به شما دسترسی میده تا شاید بخواید در این حین یک کار مشخصی رو انجام بدید