2009-08-08 23 views
7

जब स्क्रिप्ट को die() या exit() द्वारा समाप्त किया जाता है तो मैं एक फ़ंक्शन कॉल करना चाहता हूं।
मेरी इच्छा यह स्वचालित रूप से करना है, इसलिए मुझे हर समय फ़ंक्शन कॉल करने की आवश्यकता नहीं है।स्क्रिप्ट समाप्त होने पर कॉल फ़ंक्शन

क्या यह संभव है?

उत्तर

15

उपयोग register_shutdown_function():

http://docs.php.net/manual/en/function.register-shutdown-function.php

+0

धन्यवाद, Google पर कुछ भी नहीं मिला है और मुझे नहीं लगता कि वास्तव में एक फ़ंक्शन है;) – usoban

+5

PHP दस्तावेज़ों में निकास() फ़ंक्शन। PHP दस्तावेज नियमित रूप से इस तरह के प्रश्नों को देखने के लिए सबसे अच्छी शुरुआत है। – Scharrels

1

अगर यह मदद करता है मैं नहीं जानता, लेकिन आप इसे दूसरी तरह के आसपास कर सकते हैं।

इस तरह एक समारोह को परिभाषित करें:

function terminate() // you might want to have parameters here to handle different cases 
{ 
    the_function_to_call(); 
    die(); // or exit(); 
} 

फिर अपने कोड कॉल terminate() बजाय die() या exit() अंदर।

4

वर्गों के लिए __destruct() जादू विधि भी शटडाउन पर चलती है, जब तक कि आप पहले क्लास ऑब्जेक्ट को अनसेट नहीं करते। यद्यपि Scharrels प्रतिक्रिया सरल है यदि आप केवल एक सामान्य कार्य पंजीकृत करना चाहते हैं। देखें http://docs.php.net/manual/en/language.oop5.decon.php#language.oop5.decon.destructor

शटडाउन में स्क्रिप्ट चलाने के दौरान ध्यान में रखना एक बात यह है कि आउटपुट ब्राउज़र पर भेजा जाने के बाद होता है, इसलिए आपको स्क्रीन पर कोई त्रुटि दिखाई नहीं देगी। सुनिश्चित करें कि शट डाउन फ़ंक्शंस के लिए फ़ाइल में त्रुटियों को लॉग करना याद रखें!

+0

मुझे वस्तुओं को नष्ट करने के लिए __destruct() के बारे में पता है, लेकिन यह मेरी मदद नहीं करता है। मेरे पास सत्र में हेरफेर के लिए एक कक्षा है। कारण मैं ऑब्जेक्ट पर __destruct() का उपयोग नहीं करना चाहता, क्योंकि मैं अंत में सत्र डेटा को सही तरीके से सहेजना चाहता हूं, और स्क्रिप्ट प्रोसेसिंग के दौरान सत्र ऑब्जेक्ट को नष्ट किया जा सकता है। वैसे भी धन्यवाद;) – usoban

+3

यदि यह सत्र डेटा प्रबंधन के लिए है, तो आपको session_set_save_handler() पर देखना चाहिए - इसमें शट डाउन फ़ंक्शंस को पंजीकृत करने की आवश्यकता के बिना सत्र डेटा को शटडाउन में सहेजने के लिए इसकी एक प्रणाली है, एक लिखने वाला हैंडलर है। Http://php.net/manual/en/function.session-set-save-handler.php देखें – simonrjones

संबंधित मुद्दे