परिचय
PHP में, एक फ़ंक्शन को रेफरेंस द्वारा रिटर्न करने के लिए भी बनाया जा सकता है। यह यह पता लगाने के लिए उपयोगी है कि किस वेरिएबल से रेफरेंस बंधा होना चाहिए। रेफरेंस द्वारा रिटर्न करने वाले फ़ंक्शन को परिभाषित करने के लिए, इसके नाम को & साइन से उपसर्गित करें।
उदाहरण
उदाहरण 1: रेफरेंस द्वारा रिटर्न करने वाला फ़ंक्शन
निम्न उदाहरण में, myfunction() को रेफरेंस द्वारा रिटर्न करने के लिए परिभाषित किया गया है। इसमें एक स्टैटिक वेरिएबल है जिसका रेफरेंस लौटाया जाता है और एक ग्लोबल वेरिएबल को असाइन किया जाता है। स्थानीय स्टैटिक वेरिएबल का मान भी बदल जाएगा यदि इसके बाहर रेफरेंस को अलग मान असाइन किया जाता है।
<?php
function &myfunction() {
static $x = 10;
echo "x Inside function: ", $x, "\n";
return $x;
}
$a = &myfunction(); // फ़ंक्शन में x का रेफरेंस समाहित करता है
echo "returned by reference: ", $a, "\n";
$a = $a + 10; // फ़ंक्शन के अंदर वेरिएबल भी बढ़ जाता है
$a = &myfunction();
?>
आउटपुट
x Inside function: 10 returned by reference: 10 x Inside function: 20
रेफरेंस द्वारा रिटर्न करने वाला मेथड
किसी क्लास में ऐसा मेथड भी हो सकता है जो रेफरेंस द्वारा रिटर्न करने में सक्षम हो। यह क्लास के बाहर से प्राइवेट इंस्टेंस वेरिएबल के मान को बदलने में सक्षम बनाता है।
उदाहरण 2: रेफरेंस द्वारा रिटर्न करने वाला मेथड
<?php
class myclass {
private $val;
function __construct($x) {
$this->val = $x;
}
function &getbyref() {
return $this->val;
}
function getbyval() {
return $this->val;
}
}
$a = new myclass(10);
$b = &$a->getbyref();
$b = 100;
echo "Value of private property: ", $a->getbyval();
?>
आउटपुट
Value of private property: 100