<?php
$a="ABC";
$b =&$a;
echo $a; //这里输出:ABC
echo $b;//这里输出:ABC
$b="EFG";
echo $a;//这里$a的值变为EFG 所以输出EFG
echo $b;//这里输出EFG 因为改变的是同一个值。
?>
<?php
$a="ABC";
$b =&$a;
echo $a; //这里输出:ABC
echo $b;//这里输出:ABC
$b="EFG";
echo $a;//这里$a的值变为EFG 所以输出EFG
echo $b;//这里输出EFG 因为改变的是同一个值。
?>
重点是$b =&$a;
这个赋值语句。$b
实际上指向了$a
的内存地址。
当对$b
赋值的时候,实际上会改变$a
的值。
如果你的第一个赋值语句是$b=$a;
则对$b
再赋值,就不会改变$a
的值了。
$b =&$a;
是引用赋值,此时变量$b和$a执行的是相同的内存地址。
当修改$b时,$a的值也同时被修改。
2 回答3.1k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
3 回答1.2k 阅读
2 回答1.1k 阅读
1 回答1.2k 阅读
因为你创建了引用
这个时候就创建了对应关系,意味着b与a共用一块内存空间。b改变所以a改变了