PHP对象的浅副本和深副本的
详细说明
最近注意到不同的对象这一问题在~ ~ PHP和clone'at T原型模型
实例代码:
聚合
类obja {
公共$ = 0;
公共objb美元; / /包含的对象
功能__construct(){
美元-> objb =新objb();
}
只有实现以下
方法才能实现深拷贝聚合能力
/ *功能__clone(){
美元-> objb =克隆美元-> objb;
}
}
类objb {
公众num2 = 0美元;
}
原型对象
obja美元=新obja();
复制对象(=/复制引用)
obja2 = obja美元美元;
obja2 -> num = 2美元;
随着obja美元->民 / / $ obja2 -> Num也改变了
print_r($ obja ->数); / / 2
print_r($ obja2 ->数); / / 2
复制对象( / / clone'keyword克隆)
obja3 =克隆obja美元美元;
obja3 -> num = 4美元;
随着obja3美元->民 / / $ obja ->数没有变化。
print_r($ obja ->数); / / 2
print_r($ obja3 ->数); / / 4
但是克隆(对象 / /包含在对象的集合体)包含其他对象当复制是一个
参考(objb)
obja3美元-> objb -> num2 = 7;
print_r($ obja3 -> objb -> num2。); / /结果是7
print_r($ obja -> objb -> num2。); / /结果是7
如果您有任何问题,请在本站留言或与社区交谈。谢谢你的阅读。我希望你能帮助你。感谢您对本站的
支持。