php对象复制-深拷贝-浅拷贝

/**
* 对象复制
*/

//深拷贝//变量复制了一份传递给另一个变量就是深拷贝,一个值改变了,另一个值不会变


//浅拷贝//变量之间的值是地址传递,这就是浅拷贝.值如果改变了两个变量的值都会改变

//在php中对象的赋值是浅拷贝的
//而普通类型的变量是深拷贝的
//php对象默认就是浅拷贝 面试的时候会问到
class A
{
public $age = 0;
public $username = '';

//对象属性
public $obj = null;
}

$a = new A();
$b = clone $a;//使用clone关键字复制一份$a的值,进行深拷贝.拷贝之后不会改变$a之前的值
$b->age = 1;
var_dump($a->age);

 

posted @ 2017-12-03 15:16  enjie  阅读(139)  评论(0编辑  收藏  举报