यह संदर्भ (&
) द्वारा असाइनमेंट (=
) नहीं है।
आप कहना चाहते थे, तो:
$a = 42;
$b =& $a;
आप कर रहे हैं वास्तव में $a
संदर्भ द्वारा $b
को असाइन कह।
संदर्भ द्वारा निर्दिष्ट करने से दो चर एक साथ "टाई" होते हैं। अब, यदि आप $a
को बाद में संशोधित करना चाहते हैं, तो $b
इसके साथ बदल जाएगा।
उदाहरण के लिए:
$a = 42;
$b =& $a;
//later
echo $a; // 42
echo $b; // 42
$a = 13;
echo $a; // 13
echo $b; // 13
संपादित करें:
Artefacto के रूप में टिप्पणी में बताते हैं, $a =& $b
नहीं$a = (&$b)
के समान है।
इसका कारण यह है &
ऑपरेटर का मतलब है कुछ के बाहर एक संदर्भ बनाने जबकि, =
ऑपरेटर आवंटित-दर-मूल्य करता है, इसलिए अभिव्यक्ति $a = (&$b)
साधन $b
के लिए एक अस्थायी संदर्भ है, तो उस अस्थायी का मान असाइन कर $a
पर, असाइन-बाय-रेफरेंस नहीं है।
$array = array('apple', 'orange', 'banana');
// Without &
foreach($array as $d)
{
$d = 'fruit';
}
echo implode(', ', $array); // apple, orange, banana
// With &
foreach($array as &$d)
{
$d = 'fruit';
}
echo implode(', ', $array); // fruit, fruit, fruit
नहीं एक व्याख्या है, लेकिन एक =&
काम में इसका उपयोग करने के बिना &
ऑपरेटर का उपयोग करने में सक्षम होने का एक उदाहरण:
स्रोत
2010-08-19 22:01:32
http://stackoverflow.com/questions/1367454/what-do-operators-in-php-mean – muhmuhten