2013-02-14 13 views
9

अगर मैं निष्पादित करें:मर जाता है() PHP में अपना सत्र समाप्त करता है?

die(); 

यह भी प्रभावी ढंग से

session_write_close(); 

फोन करेंगे मरने पूरी प्रक्रिया बंद हो जाता है क्योंकि?

+3

हाँ कहीं भी होगी, उसी तरह किसी भी स्क्रिप्ट समाप्ति होगा। ऑब्जेक्ट विनाशक भी दौड़ेंगे; हालांकि मैं किसी भी auto_append_file –

+1

के बारे में निश्चित नहीं हूं, कोई सत्र समाप्त नहीं होगा। मरने(); केवल स्क्रिप्ट के निष्पादन को रोकता है। – ripa

उत्तर

11

नहीं। आप PHP पृष्ठ पर देख सकते हैं: http://www.php.net/manual/en/function.exit.php

शटडाउन कार्य करता है और वस्तु विनाशकर्ता हमेशा भले ही बाहर निकलें कहा जाता है निष्पादित किया जाएगा (क्योंकि मरबाहर निकलने के बराबर है)।

लेकिन, session_write_close शट डाउन फ़ंक्शन नहीं है। यदि आप "मर जाते हैं" तो यह नहीं चलेगा। मेरा सुझाव है कि आप session_register_shutdown देखें। यह session_write_close() को शटडाउन फ़ंक्शन के रूप में पंजीकृत करेगा और इस मामले में, यह "मर" पर चलाएगा।

अधिक जानकारी: http://www.php.net/manual/en/function.session-register-shutdown.php

7

die और exit समकक्ष हैं। दस्तावेज़ों से:

स्क्रिप्ट के निष्पादन को समाप्त करता है। शट डाउन फ़ंक्शंस और ऑब्जेक्ट डिस्ट्रक्टर्स हमेशा निष्पादित किए जाएंगे, भले ही बाहर निकलें।

तो php अभी भी सफाई दिनचर्या जाना होगा। वैसे भी, यदि आप स्क्रिप्ट शटडाउन पर कुछ कस्टम करना चाहते हैं तो आप register_shutdown_function का उपयोग करके शट डाउन फ़ंक्शन पंजीकृत कर सकते हैं।

function shutdown() 
{ 
    //Some custom clean-up, logging and so on 
} 

register_shutdown_function('shutdown'); 

नोट: यदि आप अपने कस्टम शटडाउन समारोह रजिस्टर यह भी जब गंभीर त्रुटि होता है बुलाया जाएगा।

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