我试图理解引用传递。这可能是一个糟糕的类比,但它像牛顿第三定律(作用- react 对)吗?
例如,对于下面的代码
$a = 4;
$b = 2;
$n = 42;
$a = &$b;
是
$a=$n
和 $b=$n
一样吗? $a
和$b
的值不是存放在同一个地址吗?
最佳答案
如果您正常分配这些变量:
$a = 1;
$b = 2;
$c = 3;
然后关联将如下所示:
a --> 1
b --> 2
c --> 3
现在,如果您将 $c
设为 $a
的引用,如下所示:
$a = 1;
$b = 2;
$c = &$a;
然后关联将如下所示:
a --> 1 <--.
b --> 2 |
c --------/
也就是说,$a
和$c
指向同一个值。因为它们都指向相同的值,所以我们可以更改其中一个变量,它们都将指向新值。
$a = 5;
echo "$a $c"; // Output: "5 5"
$c = 10;
echo "$a $c"; // Output: "10 10"
关于php - 通过引用传递,$a = &$b,$a=$n 是否与 $b=$n 相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14333215/