33
。
$b=2;
$a=&$b;
$a=3;
print $a;
print $b;
$b
怎么变成了3?
33
。
$b=2;
$a=&$b;
$a=3;
print $a;
print $b;
$b
怎么变成了3?
当$a
指向$b
的内存位置时。
现在,如果您更改$a
的值,它实际上将更新$b
的值(存储$b
的位置)。因为两者都指向同一内存位置。
或者,您可以说$a
和$b
是访问同一内存位置的两种不同方式,因为您已将$b
的引用分配给了$a
。
从上面的图片可以看出,当您将变量的引用赋给另一个变量时,它们都指向同一位置,因此对其中一个的更改也会反映在另一个上。
谢谢
你正在将"$b"的地址存储到"$a"中,之后改变了"$a"的值,导致"$b"地址中的值也发生了改变,因此"$b"也随之改变了。
一旦你引用了$a
和$b
,它们就是同一个变量的两个名称。
另请参阅:http://php.net/manual/en/language.references.php(特别是列表中的第一篇文章)
$a=&$b;
这行代码的意思是“从现在开始,$b 也是 $a。”
print $a; // prints 3
print $b; // prints another 3