通过引用传递$ a =&$ b,$ a = $ n与$ b = $ n相同?

use*_*637 5 php pass-by-reference

我试图理解通过引用传递.这可能是一个不好的比喻,但它是否像牛顿第三定律(动作 - 反应对)?

例如,对于以下代码

$a = 4;
$b = 2;
$n = 42;
$a = &$b;
Run Code Online (Sandbox Code Playgroud)

$a=$n同样的$b=$n?是不是值$a$b存储在同一个地址?

Sve*_*sen 7

如果正常分配这些变量:

$a = 1;
$b = 2;
$c = 3;
Run Code Online (Sandbox Code Playgroud)

然后关联将如下所示:

a --> 1
b --> 2
c --> 3
Run Code Online (Sandbox Code Playgroud)

现在,如果您$c参考$a,像这样:

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

然后关联将如下所示:

a --> 1 <--.
b --> 2    |
c --------/
Run Code Online (Sandbox Code Playgroud)

换句话说,$a$c指向相同的值.因为它们都指向相同的值,所以我们可以更改任一变量,它们都指向新值.

$a = 5;
echo "$a $c"; // Output: "5 5"
$c = 10;
echo "$a $c"; // Output: "10 10"
Run Code Online (Sandbox Code Playgroud)