PHP的一个坑

先看一段代码

$a=1;
$b=&$a;
$c=(++$a)+($a++);
echo $c;//echo 5?!

一开始看到这个结果会觉得很神奇,毕竟应该是输出4的。那我们先看看另一段代码。

$a['test']=1;
$b=&$a['test'];
$c=$a;
$c['test']=2;
echo $a['test'];//echo 2;

这两个问题其实原因是一样的,变量引用污染!

因为对变量的引用操作,使变量的修改没有对内存复制一份再修改,导致$a++和$c['test'] 影响到++$a和$a['test'].

所以PHP中使用引用要谨慎啊

原文地址:https://www.cnblogs.com/second-ta/p/3570830.html