PHP对象的浅副本和深副本的详细说明

PHP对象的浅副本和深副本的详细说明
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

如果您有任何问题,请在本站留言或与社区交谈。谢谢你的阅读。我希望你能帮助你。感谢您对本站的支持
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部