但是对象引用和指针引用到底有什么区别呢?
大家可以看下面这个例子:
echo "<pre>"; class SampleClass { var $value; } $a = new SampleClass(); $a->value = $a; $b = new SampleClass(); $b->value = &$b; $a->value = 1; $b->value = 1; var_dump($a); var_dump($b); echo "</pre>"; |
大家会发现,运行结果也许出乎你的预料:
object(SampleClass)#1 (1) { ["value"]=> int(1) } int(1) |
改变 $a->value 的值仅仅是改变了 $a->value 的值,而改变 $b->value 的值却改变了 $b 本身,这就是对象引用和指针引用的区别。