PHP引用变量,为什么$a=21?
有人能用简单的语言向我解释为什么最终输出中$a=21吗PHP引用变量,为什么$a=21?,php,reference,Php,Reference,有人能用简单的语言向我解释为什么最终输出中$a=21吗 $a = '1'; echo $a . "<br>"; // result 1 $b = &$a; echo $b . "<br>"; // result 1 $b = "2$b"; echo $b . "<br>"; // result 21 echo $a . "<br>"; // result 21 WHY? echo $a . ", " . $b; // res
$a = '1';
echo $a . "<br>"; // result 1
$b = &$a;
echo $b . "<br>"; // result 1
$b = "2$b";
echo $b . "<br>"; // result 21
echo $a . "<br>"; // result 21 WHY?
echo $a . ", " . $b; // result 21, 21
$a='1';
回声一美元。“
”;//结果1
$b=&$a;
回音$b。“
”;//结果1
$b=“2$b”;
回音$b。“
”;//结果21
回声一美元。“
”;//结果21为什么?
回声一美元。", " . $b、 //结果21,21
多谢各位。我非常感谢你的帮助。这是因为当你这么做的时候
$b = "2$b";
它的意思是“将$b的值设置为字符串“2”,后跟$b的当前值
早些时候你把
$b = &$a;
这意味着“为$a创建一个新引用并称之为$b”,或者换句话说,使$b指向内存中$a指向的同一个对象
当您更新$b的值时,实际上是在更新存储在$a和$b都指向的内存块中的值,因此,一旦您将$b设置为特定值,$a将是相同的值,因为它们都引用相同的对象。这是因为当您这样做时
$b = "2$b";
它的意思是“将$b的值设置为字符串“2”,后跟$b的当前值
早些时候你把
$b = &$a;
这意味着“为$a创建一个新引用并称之为$b”,或者换句话说,使$b指向内存中$a指向的同一个对象
更新$b的值时,实际上是在更新存储在$a和$b都指向的内存块中的值,因此,一旦将$b设置为特定值,$a将是相同的值,因为它们都引用相同的对象 那么,您将“21”指定给
$b
,这是对$a
的引用。这就是引用的含义…请继续阅读。这是一个练习题,您将“21”指定给$b
,这是对$a
的引用。这就是引用的目的…请继续阅读和。这是一个练习。可能混淆的是,当重新设置$b
的值时,它仍然指向相同的内存地址,而不是指向新字符串2$b
?我们可以假设$b
是指向$a
的指针,当重新分配它的值时,它指向另一个内存地址(与C差不多)。啊哈,,@GordonM,谢谢。明白了。。我想我明白了。这向我解释了“当你更新$b的值时,你实际上是在更新存储在内存块中的值,$a和$b都指向了这个值”也许混淆的是,为什么在重新设置$b
的值时,它仍然指向相同的内存地址,而不是指向新的字符串2$b
?我们可以假设$b
是指向$a
的指针,当重新分配它的值时,它指向另一个内存地址(与C差不多)。啊哈,,@GordonM,谢谢。明白了。。我想我明白了。这向我解释了“当你更新$b的值时,你实际上是在更新存储在内存块中的值,$a和$b都指向这个值”