首页 > 代码库 > PHP的深复制和浅复制
PHP的深复制和浅复制
对象实例的clone是地址复制,基础属性(非对象实例)是引用复制
<?php class C{ public $name = ‘eg‘; } class A{ public $color = ‘black‘; public $c; function __construct(){ $this->c = new C(); } } class B extends A{ public $sex =‘female‘; } //PHP的复制 $obj1 = new B(); $obj2 = $obj1; $obj2->color = ‘white‘; var_dump($obj1); echo ‘<br/>‘; var_dump($obj2); echo ‘<br/>‘; //PHP的clone $obj3 = clone $obj1; $obj3->color = ‘red‘; $obj3->c->name = ‘change‘; var_dump($obj3); echo ‘<br/>‘; echo($obj1->c->name).‘<br/>‘; echo($obj2->c->name).‘<br/>‘; echo($obj3->c->name).‘<br/>‘; ?>
PHP的深复制和浅复制
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。