PHP参考变量,为什么$ a = 21?

GRo*_*ing 0 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; // result 21, 21
Run Code Online (Sandbox Code Playgroud)

谢谢。我非常感谢您的帮助。

Gor*_*onM 5

因为当你这样做

$b = "2$b";
Run Code Online (Sandbox Code Playgroud)

这意味着“将$ b的值设置为字符串“ 2”,然后加上$ b的当前值。

之前你放

$b = &$a;
Run Code Online (Sandbox Code Playgroud)

这意味着“为$ a创建一个新引用,并将其称为$ b”,换句话说,使$ b指向$ a指向的内存中的同一事物。

当您更新$ b的值时,您实际上是在更新$ a和$ b都指向的内存块中存储的值,因此一旦将$ b设置为特定值,$ a将是相同的值因为它们都引用同一件事。