位置: 编程技术 - 正文

PHP中的浅复制与深复制的实例详解(阐述python中浅复制与深复制)

编辑:rootadmin

推荐整理分享PHP中的浅复制与深复制的实例详解(阐述python中浅复制与深复制),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php浅拷贝,php中的浅复制与深复制,php浅拷贝和深拷贝的区别,php浅拷贝,php浅拷贝和深拷贝的区别,php 深拷贝 浅拷贝,php中的浅复制与深复制,php中的浅复制与深复制,内容如对您有帮助,希望把文章链接给更多的朋友!

PHP中的浅复制与深复制的实例详解

前言:

最近温习了一下Design Pattern方面的知识,在看到Prototype Pattern这一设计模式时,注意到其中涉及到一个浅复制与深复制的问题。这里来总结一下,提醒自己以后一定要多加注意。

自PHP5起,new运算符自动返回一个引用,一个 对象变量 已经不再保存整个对象的值,只是保存一个标识符来访问真正的对象内容。当对象作为参数传递,作为结果返回,或者赋值给另外一个变量,另外一个变量跟原来的不是引用的关系,只是他们都保存着同一个标识符的拷贝,这个标识符指向同一个对象的真正内容。

这里举个栗子:

通过上面这个例子,应该可以理解对象间引用的概念了,那么我们继续往下走,在php中提供了 clone 这个关键字来进行对象复制,还是用上面的类来演示一下:

这里看到,通过clone之后,$ex1与$ex2是两个不同的对象,他们拥有各自的变量环境。但是这里需要注意,在这两个对象内部,拥有的是值类型的数据,如果是内部拥有的是引用类型,那么通过clone得到的新对象中的引用则仍然指向原引用。这里就引申出 浅复制 与 深复制 的概念:

PHP中的浅复制与深复制的实例详解(阐述python中浅复制与深复制)

浅复制: 使用clone来复制对象,这种复制叫做“浅复制“,被赋值对象的所有变量都还有与原来对象相同的值,而所有的对其他对象的引用都仍然指向原来的对象。

深复制:被复制的对象的所有的变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。

默认使用 clone 是进行一个浅复制,那么如何才能进行深复制呢?

方式一:利用__clone方法

这种方式非常直观,但是却有一个很麻烦的操作方式,就是当类中包含多个引用时,你就需要在__clone方法中逐个重新设置。而且还要处理一些循环引用的问题。是很复杂的。

方式二:利用串行化(冷藏与解冻)

这时候得到的$ex2就是一个全新的对象,这个过程在java中也叫作”冷藏“与”解冻“过程。

序列化是一个递归的过程,我们不需要理会被对象内部引用了多少个对象以及引用了多少层对象,我们都可以彻底的复制。方式二真的很黄很暴力,但是我很喜欢。

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

PHP对象的浅复制与深复制的实例详解 PHP对象的浅复制与深复制的实例详解最近在看原型模式时注意到这个问题~~PHP中对象'='与‘clone'的区别实例代码://聚合类classObjA{public$num=0;public$objB;//包

PHP 中魔术常量的实例详解 PHP中魔术常量的实例详解本文介绍下,php编程中的魔术常量,掌握并灵活应用这些方法与常量,对于提高php的编程水平,有很大的帮助。有需要的朋友

PHP中类型转换 ,常量,系统常量,魔术常量的详解 PHP中类型转换,常量,系统常量,魔术常量的详解1.自动类型转换;在运算和判断时,会进行自动类型转换;1)其他类型转为bool,判断时转换;1)整型转布尔型

标签: 阐述python中浅复制与深复制

本文链接地址:https://www.jiuchutong.com/biancheng/284209.html 转载请保留说明!

上一篇:php调用云片网接口发送短信的实现方法(php云盘源码)

下一篇:PHP对象的浅复制与深复制的实例详解(php对象赋值给变量)

  • 印花税的会计分录有哪些
  • 金税四期对个人所得税的影响
  • 资产总额是营业收入吗
  • 个税手续费返还政策文件
  • 其他应付款在借方资产负债表怎么填
  • 发票印不上字还能用吗?
  • 小企业会计准则以前年度损益调整
  • 同一控制下企业合并和非同一控制下企业合并的区别
  • 外地报销怎么报
  • 建筑工地的零星补单是指什么意思
  • 固定资产报废账务怎么处理
  • 公司用货币资金做账
  • 主营业务税金及附加包括什么
  • 公司为员工购买五险一金是什么意思
  • 增值税附加税减半征收政策
  • 广告业增值税税率6%是多少
  • 维修材料费主要包括
  • 预缴水利基金如何申报?
  • 小规模差额征税季度不超过30万的税收优惠
  • 筹备期间的开办企业是指
  • 收到其他公司的捐赠收入怎么处理
  • 企业亏损减资的会计处理
  • 分支机构能否核定企业所得税
  • 车间办公费计入什么会计科目
  • 金税盘开票信息修改
  • 继续教育专项附加扣除标准
  • 应交税费的会计处理2018
  • 东芝t351笔记本
  • 应收账款期初余额是借还是贷
  • 弥补亏损企业类型都是一般企业吗
  • 成本核算的一般步骤
  • 金针菜的养殖方法和技术
  • 应付账款周转天数长对企业的影响
  • 查补以前年度所得税如何申报
  • 股东无偿转让股权
  • 营改增之前的收入开什么票
  • 取得短期借款会计科目
  • 增值税纳税筹划案例最新
  • 【已解决】VUE3+webpack >5报错问题
  • 公司购买食品属于什么费用
  • dpkg --list
  • html不能运行
  • 购买方怎么填写发票
  • 青苗补偿费归谁所有
  • 补充医疗保险属于什么
  • 解决掉发的有效方法
  • 水利基金可以不计提吗
  • 服务器配置mysql
  • 文化事业建设税怎么申报
  • 为什么要加大研发投入
  • 营改增租金收入税率
  • 管家婆进销存的凭证如何体现?
  • 白条入账会计处理
  • 外贸企业的汇率怎么算
  • 税后净利润弥补亏损分lu1
  • 公司之间的借款利息有最小限制吗
  • 生产成本与工程施工
  • 开发软件应采用
  • mysql 300万条数据
  • 新买的电脑如何验机
  • xp系统没有安装好,请重新运行安装程序
  • qttask.exe是什么进程?qttask.exe是不是病毒?
  • ubuntuiso
  • PSNGive.exe - PSNGive进程有什么用 是什么意思
  • ubuntu和windows文件互传
  • WIN10系统中读卡器驱动的正确安装程序
  • win7任务管理器怎么调回原来样子
  • windows7电脑无法正常运行
  • eclipse cocos2dx Command line too long
  • 安卓打开前置摄像头
  • 基于arcgis的python编程
  • jquery的css样式
  • javascriptz
  • android studio 开发语言
  • python utils模块
  • 如何运用投资组合理论
  • 国家税务总局查询发票
  • 公司忘记报税了怎么补
  • 接受虚开增值税普票如何补救
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设