• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
Destructors
#1
دوستان سلام
دقیقا چه زمانی باید از این متد استفاده کنیم و ب چه شکل . آیا با این متد فقط باید متغیر ها رو unset کنیم . و اصلا کلا باید چه چیز هایی رو برای آزاد سازی حافظه unset کنیم
یه سوال دیگه اینکه اگر این متد رو تو کلاسمون به کار نبریم. متغیر ها اتوماتیک وار آزاد نمی شن.
آیا فقط می شود متغیر ها رو unset کرد ؟
ممنون می شم پاسخ بدید
  پاسخ
تشکر شده توسط : cyletech
#2
خلاصه بهت میگم، مو شکافیشو توی اینترنت بگرد:

نقل قول:دقیقا چه زمانی باید از این متد استفاده کنیم و ب چه شکل
همیشه. و بشکل عادی:{} ()public function __destruct
نیازی به صدا زدن هم نداره - خودش خودکار کارشو انجام میده


نقل قول:. آیا با این متد فقط باید متغیر ها رو unset کنیم
خیر. استفاده های زیادی داره. مخصوصاً در کار با web service ها، دیتابیس ها، سوکت و...
متد ها رو unset نمی کنن. اون Propertie هستش که unset می کنن.
پروپرتی ها هم بهتره که داخل همین تابع unset بشه.


نقل قول:اصلا کلا باید چه چیز هایی رو برای آزاد سازی حافظه unset کنیم
هر متغیری که اطلاعات حساس(مثل COOKIE SESSION SERVER...) یا سنگینی(مثل ARRAY، داده های دیتابیس، داده های داخل فایلها و...) داخلش باشه.


نقل قول:یه سوال دیگه اینکه اگر این متد رو تو کلاسمون به کار نبریم. متغیر ها اتوماتیک وار آزاد نمی شن.
خیر نمیشن.
خود شی رو هم باید برابر NULL قرارش بدید و بعد unset کنید.
وبلاگ: Yousha.Blog.ir


 کد کمتر => خطای کمتر => قابل فهمتر => خوانایی بالاتر => نگهداری بهتر

  پاسخ
تشکر شده توسط : cyletech jpeka7 zoghal
#3
نقل قول:خیر نمیشن.
خود شی رو هم باید برابر NULL قرارش بدید و بعد unset کنید.

یه جا خونده بودم php به طور خودکار بعد از اتمام عملیاتش تمام منابع رو ازاد میکنه. البته خیلی وقت پیش.

یعنی درست نبوده؟
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط :
#4
کد پی‌اچ‌پی:
یه جا خونده بودم php به طور خودکار بعد از اتمام عملیاتش تمام منابع رو ازاد میکنهالبته خیلی وقت پیش.
یعنی درست نبوده؟ 
آره منم خونده بودم. ولی اون در مورد کد های ایستا بودش
داخل کلاس اینطور نیست.
وبلاگ: Yousha.Blog.ir


 کد کمتر => خطای کمتر => قابل فهمتر => خوانایی بالاتر => نگهداری بهتر

  پاسخ
تشکر شده توسط : undefined
#5
نقل قول:متد ها رو unset نمی کنن
اشتباه تایپی بود 3 شد .Blush
نقل قول:. آیا با این متد فقط باید متغیر ها رو unset کنیم
منظور destruct بود بابا . منم به شک انداختی .Big Grin
فقط پرورتی های اصلی کلاس رو باید un کرد ؟
مثلا در مورد دیتابیس می شه close کردن اتصال رو توی این تابع نوشت نه؟
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان