/ / PHP एक चर से "संदर्भ" हटा दें। - PHP, चर, संदर्भ

PHP एक चर से "संदर्भ" हटा दें। - PHP, चर, संदर्भ

मेरे पास कोड है। मैं इसे मानों के साथ फिर से उपयोग करने के लिए $ b बदलना चाहता हूं। अगर मैं ऐसा करता हूं तो यह $ के रूप में अच्छी तरह से बदलता है। $ A के संदर्भ के रूप में पहले असाइन करने के बाद मैं फिर से $ b का मान कैसे प्रदान कर सकता हूं?

$a = 1;
$b = &$a;

// later
$b = null;

उत्तर:

उत्तर № 1 के लिए 12

स्पष्टीकरण इनलाइन देखें

$a = 1;
$b = &$a; अब $ b और $ केवल 2 विभिन्न नामों के साथ एक ही चर बन जाता है
unset($b); $ b नाम चला गया है, संदर्भ से गायब हो गया है लेकिन $ a अभी भी उपलब्ध है
$b = 2; अब $ b नए मूल्य के साथ एक नए चर की तरह है नए जीवन की शुरुआत।


उत्तर के लिए 7 № 2
$a = 1;
$b = &$a;

unset($b);
// later
$b = null;

जवाब के लिए 5 № 3

@Xdazz द्वारा उत्तर सही है, लेकिन सिर्फ निम्नलिखित महान उदाहरण को जोड़ने के लिए PHP मैनुअल जो पीएचपी हुड के तहत क्या कर रहा है में एक अंतर्दृष्टि देता है।

इस उदाहरण में आप देख सकते हैं $bar फ़ंक्शन फू के भीतर () फ़ंक्शन स्कोप वैरिएबल का एक स्थिर संदर्भ है।

unsetting $bar संदर्भ निकालता है, लेकिन स्मृति को नहीं मिटाता:

<?php
function foo()
{
static $bar;
$bar++;
echo "Before unset: $bar, ";
unset($bar);
$bar = 23;
echo "after unset: $barn";
}

foo();
foo();
foo();
?>

उपर्युक्त उदाहरण आउटपुट होगा:

Before unset: 1, after unset: 23
Before unset: 2, after unset: 23
Before unset: 3, after unset: 23

जवाब के लिए 3 № 4

सबसे पहले: से एक संदर्भ बनाना $a सेवा मेरे $b दो चरों के बीच एक संबंध बनाता है (बेहतर शब्द की कमी के लिए) $a कब बदल रहा है $b परिवर्तन ठीक उसी तरह है जैसे यह काम करने के लिए होता है।

इसलिए, यह मानते हुए कि आप संदर्भ को तोड़ना चाहते हैं, सबसे आसान तरीका है

unset($b);
$b="new value";