有人可以用简单的语言向我解释为什么在最终输出中$ 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; // result 21, 21
谢谢。我非常感谢你的帮助。
答案 0 :(得分:4)
这是因为你做的时候
$b = "2$b";
表示&#34;将$ b的值设置为字符串&#34; 2&#34;然后是$ b的当前值。
早些时候你把
$b = &$a;
这意味着&#34;为$ a创建一个新的引用并将其称为$ b&#34;,或者换句话说,使$ b指向内存中与$ a指向的内容相同的内容。
当您更新$ b的值时,您确实更新了存储在内存块中的$ a和$ b指向的值,所以一旦你设置了$ b到特定值$ a将是相同的值,因为它们都引用相同的东西。