2011-04-06 10 views
11

मेरे पास PHP फ़ंक्शंस में उपयोग किए जाने वाले चर/सरणी के बारे में कोई प्रश्न है। फ़ंक्शन निष्पादित करने के बाद, क्या सभी चर स्वचालित रूप से अनसेट होते हैं? यदि नहीं, तो पूरे PHP पृष्ठ को निष्पादित करने के बाद, वे बिल्कुल अनसेट करते हैं? एक निश्चित समय के बाद?क्या फ़ंक्शन निष्पादन के बाद PHP फ़ंक्शंस में उपयोग किए जाने वाले चर स्वचालित रूप से अनसेट होते हैं?

क्या स्मृति से मुक्त होने के लिए फ़ंक्शन के अंत में फ़ंक्शन में उपयोग किए गए सभी चर को अनसेट करना उपयोगी है?

आपकी मदद और टिप्पणियों के लिए अग्रिम धन्यवाद!

+0

चर समारोह निष्पादन (अंत) पर (मुक्त कर दिया स्मृति) नष्ट कर रहे हैं। –

+0

आपके उत्तरों के लिए सभी को धन्यवाद। – Martin

उत्तर

7

स्थानीय चर जो किसी फ़ंक्शन में परिभाषित और उपयोग किए जाते हैं, फ़ंक्शन निष्पादित होने के बाद स्वचालित रूप से अनसेट नहीं होते हैं। इसके बजाय वे कचरा कलेक्टर द्वारा संग्रह के लिए चिह्नित हैं। जब तक आप स्थानीय चर की परिभाषा के साथ बड़ी मात्रा में स्मृति का उपभोग नहीं कर लेते हैं, वहां वास्तव में उन्हें स्पष्ट रूप से अनसेट करने की आवश्यकता नहीं होती है। बस कचरा कलेक्टर अपना काम करते हैं।

+0

फ़ंक्शन रिटर्न से पहले मैन्युअल रूप से ऐसा करने के लिए? –

+0

http://php.net/manual/en/function.unset.php –

0

हां, उनके दायरे के साथ समाप्त होने के बाद उन्हें हटा दिया जाता है (फ़ंक्शन रिटर्न)।

मुझे नहीं लगता कि उनकी याददाश्त स्वचालित रूप से साफ़ हो जाती है, बल्कि अतिरिक्त स्मृति की आवश्यकता होने पर उन्हें साफ़ कर दिया जाएगा।

0

यूप, किसी भी समारोह में ग्लोबल घोषित नहीं किया गया है, फ़ंक्शन के बाहर मौजूद नहीं होगा। एक बार फ़ंक्शन निष्पादित हो जाने पर, मान अब mem में नहीं हैं। स्थानीय दायरे में

PHP: Variable Scope

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

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