先看一段代码
$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中使用引用要谨慎啊