PHP Clone 深复制和浅复制 clclone hdclone memberwiseclon
程序员文章站
2022-04-07 15:58:18
...
今天在看大话设计模式的时候,看到原型模式。其中讲到深复制与浅复制,于是搜索了一下php手册。
看php如何实现深复制与浅复制的。
看php如何实现深复制与浅复制的。
classSubObject
{static$instances = 0;
public$instance;
publicfunction__construct()
{$this->instance = ++ self::$instances;
}
publicfunction__clone()
{$this->instance = ++self::$instances;
}
}
classMyCloneable
{public$object1;
public$object2;
publicfunction__clone()
{// 强制复制一份this->object, 否则仍然指向同一个对象// 深复制[将自己的属性重新克隆一份]$this->object1 = clone$this->object1;
// 浅复制[引用的还是原来,并没有生成新的]//$this->object2 = clone $this->object2;
}
}
$obj = new MyCloneable();
$obj->object1 = new SubObject();
$obj->object2 = new SubObject();
$obj2 = clone$obj;
print("Original Object:\n");
print_r($obj);
print("Clone Object:\n");
print_r($obj2);
结果
Original Object:
MyCloneable Object
(
[object1] => SubObject Object
(
[instance] => 1
)
[object2] => SubObject Object
(
[instance] => 2
)
)
Clone Object:
MyCloneable Object
(
[object1] => SubObject Object
(
[instance] => 3//深复制 所以有+1
)
[object2] => SubObject Object
(
[instance] => 2//浅复制 并没有创建新的对象
)
)
').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i ').text(i));
};
$numbering.fadeIn(1700);
});
});
以上就介绍了PHP Clone 深复制和浅复制,包括了clone,php方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
上一篇: 怎样使用vue地区选择组件