此 PHP 代码的输出是33
.
$b=2;
$a=&$b;
$a=3;
print $a;
print $b;
怎么$b
变成3了?
就像$a
指向$b
内存位置一样。
现在,如果您更改它的值,$a
它实际上会更新$b
值($b
存储的位置)。因为两者都指向相同的内存位置。
或者,您可以说$a
和$b
是访问相同内存位置的两种不同方式,因为您分配了$b
to的引用$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