2012-11-21 20 views
15

register_shutdown_function क्या करता है?का स्पष्टीकरण: register_shutdown_function

मुझे इसका उपयोग करने पर कोई समझ नहीं है और यह क्या करता है। मुझे पता है कि आप इसका उपयोग कर सकते हैं और एक कस्टम त्रुटि हैंडलर के साथ अच्छी तरह से फिट हो सकते हैं, लेकिन मुझे नहीं पता कि इसके माध्यम से क्या करना है, इसके साथ क्या करना है, आदि

क्या कोई इसे इसके लिए सबसे आसान शब्दों में समझा सकता है कोडिंग नौसिखिया?

उत्तर

27

यह वास्तव में एक बहुत ही सरल कार्य है।

<?php 
    echo "Here is my little script"; 

    function endScript(){ 
     echo "My little Script has finished"; 
    } 

    register_shutdown_function('endScript'); 

?> 

असल में क्या होता है अपनी स्क्रिप्ट रन है और क्योंकि हम इस लाइन register_shutdown_function('endScript'); जोड़ा इसके समाप्त होने पर यह समारोह endScript और अंत में उत्पादन My little script has finished कॉल करेगा: तो तुम एक php स्क्रिप्ट है।

यहाँ documentation से थोड़ा अतिरिक्त है:

एक कॉलबैक रजिस्टर) स्क्रिप्ट निष्पादन खत्म या बाहर निकलने के() called.Multiple register_shutdown_function करने के लिए कॉल (है के बाद निष्पादित करने के लिए बनाया जा सकता है, और प्रत्येक बुलाया जाएगा उसी क्रम में जब वे पंजीकृत थे। यदि आप एक पंजीकृत शट डाउन फ़ंक्शन के भीतर निकास() को कॉल करते हैं, तो प्रोसेसिंग पूरी तरह से बंद हो जाएगी और कोई अन्य पंजीकृत शटडाउन फ़ंक्शन नहीं कहा जाएगा।

* अद्यतन

इसके लिए एक बेहतरीन उपयोग जब आप बार-बार समारोह php में exit() कहा जाता है का उपयोग करें।

उदाहरण के लिए:

<?php 

    function endScript(){ 
     echo "My little Script has finished"; 
    } 
    register_shutdown_function('endScript'); 

    $result = some_intricate_function() 

    if($result == 0){ 
    exit(); 
    } 

    $result = some_other_intricate_function() 

    if($result == 0){ 
    exit(); 
    } 

/* and this keeps reoccurring */ 
?> 

अब नोटिस आप बाहर निकलने से पहले endScript समारोह हर बार कॉल करने के लिए की जरूरत नहीं है, भले ही आप बाहर निकलने को कई बार फोन किया। आपने इसे शुरुआत में पंजीकृत किया है और अब आप जानते हैं कि यदि आप कभी बाहर निकलते हैं या आपकी स्क्रिप्ट खत्म होती है तो आपके फ़ंक्शन को कॉल किया जाता है।

अब निश्चित रूप से मेरा शटडाउन फ़ंक्शन बहुत बेकार है; लेकिन अगर आपको चीजों को साफ करने की आवश्यकता है तो यह उपयोगी हो सकता है (यानी खुली फ़ाइल हैंडल बंद करें, कुछ लगातार डेटा सहेजें, आदि)

+0

मैं इसे समझता हूं! स्पष्टीकरण के लिए धन्यवाद! अगर मैं कर सकता। मैं –

+0

+1 कर दूंगा @DarylGill बस इस थ्रेड पर आने वाले भविष्य के उपयोगकर्ताओं के लिए एक स्वीकृत उत्तर (चेक मार्क) के रूप में पंजीकृत करें। –

+0

@FlorinStingaciu +1, मुझे उम्मीद नहीं थी कि यह बहुत अधिक स्पष्टीकरण की आवश्यकता है :) – emartel

1

register_shutdown_function शट डाउन हुक पंजीकृत करता है, जो स्क्रिप्ट बंद होने पर निष्पादित करने के लिए एक फ़ंक्शन होता है। यह पैराबैक के रूप में एक कॉलबैक फ़ंक्शन लेता है, जिसे निष्पादित करने का कार्य होता है।

मैं अनुशंसा करता हूं कि आप फ़ंक्शन के documentation देखें।

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