手册:http://php.net/manual/zh/lang...
class A{
}
$a=new A;
$b=$a;
$a->name='haha';
echo '<pre>';
var_dump($b);
var_dump($a);
echo '<hr/>';
function test($obj){
$obj->name='xixi';
}
test($a);
var_dump($b);
var_dump($a);
echo '<hr/>';
$a=100;
var_dump($a);
var_dump($b);
结果:
如果说对象是值传递,那么改变对象属性的时候,没有触发copy on write吗
所以:
尽量避免函数内操作外部对象,否则有可能造成致命性的逻辑错误,特别是改变对象数据的时候。
或者在做对象数据传递的时候要注意数据的严谨性。