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

标签 php pass-by-reference

我试图理解引用传递。这可能是一个糟糕的类比,但它像牛顿第三定律(作用- 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/

相关文章:

javascript - javascript 对象的值不变(通过引用传递)

在没有参数的情况下更改 void 函数中的变量

php - Windows w/Precise64 上的 Vagrant 运行 php 非常慢

php - 如果当前 td 有长文本,TCPDF 会忽略早期 td 的宽度

java - 在android中将引用作为参数传递

c++ - 如何通过引用或指针传递的指针正确释放函数中分配的 main 内存?

Javascript:如何交换对象数组的元素(通过引用,而不是索引)?

php - 带有 + 的电子邮件如何工作,例如 "support+id160211@somedomain.com"

php - 希望为自己构建一个用于 PHP+MySQL 开发的小型免费 VMWare 镜像

php - 作为 PHP header 信息的数据库主键