परिचय
प्रोग्रामिंग में, स्कोप उस सीमा को संदर्भित करता है जिस तक एक चर पहुंच योग्य है। आम तौर पर, एक साधारण PHP स्क्रिप्ट (बिना किसी निर्माण जैसे लूप, फ़ंक्शन इत्यादि) का एक ही दायरा होता है, इस अर्थ में, परिभाषा के बिंदु से प्रोग्राम के दौरान एक चर उपलब्ध होता है।
एक मुख्य स्क्रिप्ट में वेरिएबल को शामिल करने या स्टेटमेंट की आवश्यकता के साथ शामिल किसी अन्य स्क्रिप्ट के लिए भी उपलब्ध कराया जाता है। निम्नलिखित उदाहरण में, एक test.php स्क्रिप्ट को मुख्य स्क्रिप्ट में शामिल किया गया है।
यह मुख्य लिपि है
$var=100;"test.php" शामिल करें;?>
शामिल फ़ाइल test.script इस प्रकार है -
testscript.php में "\$var का मान गूंजें:"। $var;?>
जब मुख्य स्क्रिप्ट निष्पादित की जाती है, तो निम्न परिणाम प्रदर्शित होता है
testscript.php में $var का मान:100
हालांकि, जब स्क्रिप्ट में उपयोगकर्ता परिभाषित फ़ंक्शन होता है, तो किसी भी चर के अंदर एक स्थानीय दायरा होता है। नतीजतन, एक funcion के अंदर परिभाषित चर को बाहर नहीं पहुंचा जा सकता है। फ़ंक्शन के बाहर (ऊपर) परिभाषित चर का वैश्विक दायरा है।
उदाहरण
आउटपुट
यह निम्नलिखित परिणाम देगा -
var=var1=Hellovar=100 var1=PHP नोटिस:अपरिभाषित वैरिएबल:लाइन 5PHP में var नोटिस:अपरिभाषित वैरिएबल:var1 लाइन 8 में
ध्यान दें कि फ़ंक्शन के स्थानीय दायरे में वैश्विक चर स्वचालित रूप से उपलब्ध नहीं है। साथ ही, वेरिएबल इनसाइड फंक्शन बाहर पहुंच योग्य नहीं है
वैश्विक कीवर्ड
वैश्विक कीवर्ड का उपयोग करके स्थानीय दायरे के अंदर वैश्विक चर तक पहुंच स्पष्ट रूप से सक्षम की जानी चाहिए। PHP स्क्रिप्ट इस प्रकार है -
उदाहरण
आउटपुट
यह निम्नलिखित परिणाम देगा -
फ़ंक्शन कॉल से पहले a =10 b =20इनसाइड फंक्शन a =10 b =20 c =15PHP नोटिस:अपरिभाषित वैरिएबल:c लाइन 13 के बाद फंक्शन a =20 b =20 c =
ग्लोबल वेरिएबल को अब फंक्शन के अंदर प्रोसेस किया जा सकता है। इसके अलावा, फ़ंक्शन के अंदर ग्लोबल वैरिएबल में किए गए बदलाव ग्लोबल नेमस्पेस में दिखाई देंगे
$GLOBALS सरणी
PHP सभी वैश्विक चर को $GLOBALS नामक एक सहयोगी सरणी में संग्रहीत करता है। चर का नाम और मान कुंजी-मान युग्म बनाता है
निम्नलिखित PHP स्क्रिप्ट में, वैश्विक चरों तक पहुँचने के लिए $GLOBALS सरणी का उपयोग किया जाता है -
उदाहरण
आउटपुट
फ़ंक्शन कॉल से पहले a =10 b =20c =15PHP सूचना:अपरिभाषित चर:c लाइन 12सूचना:अपरिभाषित चर:c पंक्ति 12 में फ़ंक्शन a =20 b =20 c =के बादस्थिर चर
फ़ंक्शन में प्रत्येक कॉल पर स्थिर कीवर्ड के साथ परिभाषित एक चर प्रारंभ नहीं किया जाता है। इसके अलावा, यह पिछली कॉल के अपने मूल्य को बरकरार रखता है
उदाहरण
आउटपुट
यह निम्नलिखित परिणाम देगा
कार्य करने के लिए कॉल करें:1:x =0कार्य करने के लिए कॉल:2:x =1कार्य करने के लिए कॉल:3:x =2