register_shutdown_function

این تاپیک 4 پاسخ و 2 مشارکت کننده دارد . آخرین آپدیت توسط :  کیوان علی محمدی ،‏ 3 سال و 4 ماه پیش .

این تاپیک تاکنون 1196 بازدید داشته است .

نویسنده پست
یکشنبه ، 4 آگوست 2013     2:50 ب.ظ #


مهشاد کلانتری

Author
VIP
432 پست67 تاپیک

سلام

تابع register_shutdown_function چه کاری انجام میده من درست متوجه نشدم!

میشه توضیح بدین؟

تو یه برنامه ای نوشته بود که ما از این تابع استفاده میکنیم تا اگه اتصال به دیتابیس انجام نشد خود به خود عمل close انجام بشه،

به این صورت هم نوشته بود:

حالا ما اگه تو کلاسمون بیایم از مخرب استفاده کنیم باز نیازی به این هست؟

من کلا درست منظورشو نفهمیدم:)

0  تشکر
یکشنبه ، 4 آگوست 2013     6:09 ب.ظ #


کیوان علی محمدی

Authorplus
VIP
1792 پست4 تاپیک

سلام عنوانش میشه این "ثبت یک تابع برای زمان به پایان رسیدن یا خروج از کد"،شما میتونی یه تابع تعریف کنی که وقتی  با دستور exit اجرای کد به پایان رسید این تابع فراخوانی بشه،بله برای این تکه کد بالایی هم میشه همچین کاری انجام داد،شما توی این کد گفتی که از همین کلاس تابع close رو برای رو برای این کار ثبت کردی.

من یه چیزی رو اضافه کنم توی نسخه 5.5 PHP برای بلاک try..catch قسمت finally رو اضافه کردن که همین امکان رو به شما میده در صورتی که کد try اجرا بشه یا نشه حتما کد های درون finally اجرا میشه.

البته این توی پلتفرم .NET از قبل بود اما توی نسخه 5.5 به PHP اضافه شده.

0  تشکر
یکشنبه ، 4 آگوست 2013     6:59 ب.ظ #


مهشاد کلانتری

Author
VIP
432 پست67 تاپیک

بعد اگه چنین چیزی تعریف نکنیم از مخرب استفاده کنیم میشه دیگه؟

0  تشکر
یکشنبه ، 4 آگوست 2013     7:00 ب.ظ #


مهشاد کلانتری

Author
VIP
432 پست67 تاپیک

برای finally هم میشه مثال بزنید؟

ممنون

0  تشکر
یکشنبه ، 4 آگوست 2013     8:18 ب.ظ #


کیوان علی محمدی

Authorplus
VIP
1792 پست4 تاپیک

بله وقتی شی رو unset کنید بازم مخرب اجرا میشه،پس می تونید کد های لازم رو اون تو اجرا کنید،البته معمولا برای اسکرپیت هایی که کدشون زیاده از مخرب استفاده میکنن (معمولا برای ثبت log و ...).

شما اگه از try..catch استفاده کرده باشید بلاکش به این صورت هست.

کلمه finally به آخرش اضافه میشه و کد هاش در صورتی که استثناء تولبد بشه یا نشه اجرا میشه(مثل همون بستن کانکشن بانک).

1  تشکر
پست 1 تا 5 (از مجموع 5 پست)

برای پاسخ دادن به این تاپیک باید وارد سایت شوید .