首页 > 后端开发 > php教程 > php的对象clone施用

php的对象clone施用

WBOY
发布: 2016-06-13 13:03:40
原创
864 人浏览过

php的对象clone使用

1。?

? ? PHP5中定义了一个__clone()将建立一个与原来的对象拥有相同属性和方法的对象。如果想在克隆后改变原对象的内容,需要在__clone()中重写原本的属性和方法。

?

????? __clone()可以没有参数,它自动包含$this和$that两个指针。

$this 指向复本

$that指向原本

?

2。

如果是类里声明了新类

class ConcretePrototype{
?? ?public function __construct() {
?? ??? ?$this->id = 1;
?? ??? ?$this->obj = new StdClass();
?? ??? ?$this->obj->name = 'dashu';
?? ?}
?? ?
?? ?public function myclone() {
?? ??? ?return clone $this;
?? ?}
???

????// 没有这个,$obj 就是引用,有了才是互相独立的两个,亲自试一下看看
????private function __clone() {
?? ??? ?$this->obj = clone $this->obj;
?? ?}
}

$p = new ConcretePrototype();
$q = $p->myclone();
var_dump($p, $q);
$q->id = 2;
//改变$q的obj的属性,$p的相应属性不变化
$q->obj->name = 'xiayi';
var_dump($p, $q);

?

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板