इस लेख में, हम PHP में पास बाय वैल्यू और पास बाय रेफरेंस के बारे में जानेंगे।
आइए, इन दो अवधारणाओं को विस्तार से समझते हैं।
PHP में आम तौर पर, हमने फ़ंक्शन को पास किए गए मान दृष्टिकोण के साथ तर्कों को पारित करने के लिए अनुसरण किया। हम इस अभ्यास का पालन कर रहे हैं क्योंकि यदि फ़ंक्शन के भीतर तर्क का मान बदल जाता है, तो यह फ़ंक्शन के बाहर नहीं बदलता है।
कुछ मामलों में हमें फ़ंक्शन तर्कों को संशोधित करने की आवश्यकता हो सकती है, इसलिए किसी फ़ंक्शन को इसके तर्कों को संशोधित करने की अनुमति देने के लिए, उन्हें संदर्भ द्वारा पारित किया जाना चाहिए।
आइए संदर्भ द्वारा पारित के साथ शुरू करें। जैसा कि पहले ही उल्लेख किया गया है, हम एक फ़ंक्शन के संदर्भ में एक चर पारित कर सकते हैं ताकि फ़ंक्शन चर को संशोधित कर सके। संदर्भ द्वारा पारित मापदंडों को पारित करने की प्रक्रिया शुरू करने के लिए, फ़ंक्शन परिभाषा में तर्क नाम के लिए एक एम्परसेंड (&) तैयार करें।
उदाहरण
आइए इसे एक साधारण उदाहरण के साथ परखें।
<?php function calculate(&$a){ $a++; } $a=5; calculate($a); echo $a; ?>
आउटपुट
6
स्पष्टीकरण
यहां हमने वेरिएबल $a घोषित किया है और इसे फंक्शन कैलकुलेट () के संदर्भ में पास के रूप में पास किया है। इसलिए जैसा कि सिद्धांत कहता है कि यदि फ़ंक्शन के अंदर $a का मान बदल जाता है तो यह फ़ंक्शन के बाहर भी बदल जाएगा।
नोट
फ़ंक्शन कॉल पर कोई संदर्भ चिह्न नहीं है - केवल फ़ंक्शन परिभाषाओं पर। संदर्भ द्वारा तर्क को सही ढंग से पारित करने के लिए अकेले फ़ंक्शन परिभाषाएं पर्याप्त हैं। जब आप गणना करने के लिए उपयोग करते हैं (&$a); यह एक त्रुटि फेंकता है।
उदाहरण
आइए पास बाय वैल्यू को समझने के लिए एक उदाहरण का परीक्षण करें।
<?php function calculate($a){ $a++; echo $a."<br/>"; } $a=5; calculate($a); echo $a; ?>
आउटपुट
6 5
स्पष्टीकरण
यहां हमने वैल्यू को पास बाय वैल्यू के रूप में फंक्शन कैलकुलेट () में पास किया है। इसका मान फ़ंक्शन के अंदर बदल जाता है लेकिन यह फ़ंक्शन के बाहर प्रतिबिंबित नहीं होता है। वेरिएबल का मान फ़ंक्शन के बाहर समान रहता है।