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

时间:2017-02-13 21:09:10

标签: 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

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

1 个答案:

答案 0 :(得分:4)

这是因为你做的时候

$b = "2$b";

表示&#34;将$ b的值设置为字符串&#34; 2&#34;然后是$ b的当前值。

早些时候你把

$b = &$a;

这意味着&#34;为$ a创建一个新的引用并将其称为$ b&#34;,或者换句话说,使$ b指向内存中与$ a指向的内容相同的内容。

当您更新$ b的值时,您确实更新了存储在内存块中的$ a和$ b指向的值,所以一旦你设置了$ b到特定值$ a将是相同的值,因为它们都引用相同的东西。