PHP 设计模式 原型模式(Prototype)之深/浅拷贝
2024-10-13 20:48:56
看PHP 设计模式 原型模式(Prototype)时,衍生出一个扩展问题之 原型拷贝的浅拷贝和深拷贝问题(不管写Java还是写PHP还是写JS时都多多少少遇到过对象拷贝问题)
比如写前端页面时,我有一个form表单的数据对象,假如这个对象既拿来做表单数据的展示,又会在保存时发送给后端,有一个时间字段created_time,后台需要接收时间戳格式,而表单样式中需要展示’2018-08-08 08:08:08’这样的字符串格式,如果直接需改为后端需要的格式,那修改过后,表单中展示的数据格式也会跟着改变,这时只需要将form表单数据对象拷贝一份出来,修改拷贝后的created_time字段,然后将拷贝后的数据对象发给后端
// 浅拷贝 与 深拷贝(PHP)
浅拷贝,如果对象中包含有对象,相当于赋值(=)操作,而对象的赋值操作只是他们都保存着同一个标识符的拷贝,这个标识符指向同一个对象的真正内容。
PHP 手册 > 语言参考 > 类与对象: http://php.net/manual/zh/language.oop5.references.php ;里面描述的比较清楚 类与对象的内容
深拷贝,可以在__clone()魔术函数中显示的clone() 对象, 这个时候就相当于复制了一份内容放在了另外一块内存空间
最新文章
- IOS开发基础知识--碎片48
- 15天玩转redis —— 第七篇 同事的一次缓存操作引起对慢查询的认识
- fio 2种画图方法 fio_generate_plots 和 gfio
- mysql convert
- jquery之 on()方法
- DB设计原则(一)字段名定义避免二义性。
- mysql--乱码
- hiho 分冶专题
- [转]ArcGIS移动客户端离线地图的几种解决方案
- 当Scheduler拿不到url的 时候,不能立即退出
- java学习笔记13--比较器(Comparable、Comparator)
- cer证书签名验证
- 排序算法——选择排序(js语言实现)
- 【ZJOI2008】树的统计(树链剖分)
- 十大ios开发者喜爱的开源库
- 523. Continuous Subarray Sum
- 初次使用Microsoft Azure
- Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)
- TMemo的ScrollBars属性和大文本
- Android实现自带横线的EditText