4

我发现下面代码中的引用令人困惑,

$a = 4;
$b = &$a;
var_dump($b);

$a = 10;
var_dump($b); // 10

$b = 100;
var_dump($a); // 100 but shouldn't it be 10?

的值$b是对 的引用,$a并且绝不$a是对 的引用。$b

但是为什么当我改变$b. 变化的价值$a呢?

4

2 回答 2

4

在该行中:$b = &$a;该变量$b被设置为对的引用$a(因为它将指向与 相同的内存位置$b)。在这方面$b,本质上变成了别名或访问和修改的另一种方式$a

链接解释了 C++ 中的指针(重要的是要强调这不是 C++,但该链接很好地解释了指针/引用)。

我希望这有帮助。

于 2015-07-16T07:33:42.347 回答
1

$b = &$a;表示它们的值是相等的,如果你定义$b然后$a值变得等于$b分别。

查看此链接以获取更多信息

于 2015-07-16T07:38:49.020 回答