परिचय
PHP में, संदर्भ एक ही चर सामग्री को अलग-अलग नामों से एक्सेस करने में सक्षम करें। वे C/C++ में पॉइंटर्स की तरह नहीं हैं क्योंकि उनका उपयोग करके अंकगणितीय संचालन करना संभव नहीं है। सी/सी ++ में, वे वास्तविक स्मृति पते हैं। इसके विपरीत PHP में, वे प्रतीक तालिका उपनाम हैं। PHP में, वेरिएबल नेम और वेरिएबल कंटेंट अलग-अलग होते हैं, इसलिए एक ही कंटेंट के अलग-अलग नाम हो सकते हैं। & . से पहले एक संदर्भ चर बनाया जाता है मूल चर पर हस्ताक्षर करें। इसलिए $b=&$a इसका मतलब यह होगा कि $b, $a का एक संदर्भ चर है।
संदर्भ द्वारा असाइन करें
निम्नलिखित उदाहरण में, दो चर समान मान को संदर्भित करते हैं
उदाहरण
<?php $var1=10; $var2=&$var1; echo "$var1 $var2\n"; $var2=20; echo "$var1 $var2\n"; ?>
आउटपुट
एक के मूल्य में परिवर्तन दूसरे में भी दिखाई देगा
10 10 20 20
यदि आप संदर्भ द्वारा एक अपरिभाषित चर निर्दिष्ट करते हैं, पास करते हैं या वापस करते हैं, तो यह बन जाएगा। किसी फ़ंक्शन के अंदर वैश्विक घोषित चर के संदर्भ को असाइन करना, संदर्भ केवल फ़ंक्शन के अंदर ही दिखाई देगा। जब फ़ोरैच स्टेटमेंट में संदर्भों के साथ एक वैरिएबल को एक मान असाइन किया जाता है, तो संदर्भों को भी संशोधित किया जाता है।
उदाहरण
<?php $arr=[1,2,3,4,5]; $i=&$ref; foreach($arr as $i) echo $i*$i, "\n"; echo "ref = ". $ref; ?>
आउटपुट
$ref का मान सरणी में अंतिम तत्व को संग्रहीत करता है
1 4 9 16 25 ref = 5
निम्नलिखित उदाहरण में, सरणी तत्व सरणी आरंभीकरण से पहले घोषित व्यक्तिगत चर के संदर्भ हैं। यदि तत्व को संशोधित किया जाता है, तो चर का मान भी बदल जाता है
उदाहरण
<?php $a = 10; $b = 20; $c=30; $arr = array(&$a, &$b, &$c); for ($i=0; $i<3; $i++) $arr[$i]++; echo "$a $b $c"; ?>
आउटपुट
$a, $b और $c के मान भी बढ़ जाते हैं
11 21 31