php中克隆对象,复制与克隆对象《 PHP 面向对象 》
在 PHP 里面,复制一个对象,其实就是去引用一个对象,如果你改变了复制的对象里的属性,原来被复制的对象也会改变。也就是这两个对象引用的其实是一个东西,改变了其中的一个,另一个也会跟着改变。
如果想真正的去复制一个对象,我们可以使用克隆,这样两个对象会是完全不同的东西,相互没有任何的影响。下面我们可以通过几个演示来理解一下复制和克隆对象。
先去创建一个 Track 对象的实例 ... 叫它 magic ... 再去设置一下这个对象的 track_name 属性的值。
$magic = new Track();
$magic->track_name = 'Magic';
下面,我们可以去复制一份这个 magic 对象 ... 叫做 magic_mix ..
$magic_mix = $magic;
再把这两个对象使用 print_r 输出到屏幕上 ...
print_r($magic);
print_r($magic_mix);
你会看到这们的 track_name 这个属性的值都是 Magic 这个字符串 ... 下面,我们可以再去修改一下 ... 回到 index.php ... 去改一下复制的这个 $magic_mix 这个对象的 track_name 属性的值 ... 改成 Magic Mix
$magic_mix->track_name = 'Magic Mix';
保存 ... 回到浏览器 ... 现在 ... magic 还有 magic_mix 这两个对象里的 track_name 这个属性的值 ... 都会是Magic Mix .... 因为这两个对象指向的是同一个东西 ... 所以,我们使用 magic_mix 这个对象改变了 track_name 的值 ... 另外那个 magic 对象也会受到影响 ...
想要它们互不相干的话 ... 可以使用克隆 ...
使用 clone 这个关键词 ... 去克隆一个 magic 对象 ... 然后把这个克隆之后的对象交给 magic_mix ...
在下面,还是修改一下 magic_mix 里的 track_name ...
再回到浏览器 ....
这回你会发现 ... magic 对象里面的 track_name ,还有 magic_mix 这个对象里面的 track_name 是不同的值。
php中克隆对象,复制与克隆对象《 PHP 面向对象 》相关推荐
- java对象复制到新对象_java – 使用新生成的ID将Hibernate复制对象值复制到新对象中...
我正在使用带有一些嵌套表的单列pk的关系数据库.我需要在项目中添加简单的归档.归档仅在应用程序到达特定状态时发生,因此我希望将现有的hibernate对象复制到新实例中,新实例将使用新ID保存,同时保 ...
- python对象复制_Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
源码阅读系列:EventBus title: 源码阅读系列:EventBus date: 2016-12-22 16:16:47 tags: 源码阅读 --- EventBus 是人们在日常开发中经常 ...
- java反射克隆对象_Java反射 - 2(对象复制,父类域,内省)
为什么要复制对象?假设有个类Car,包含name,color2个属性,那么将car1对象复制给car2对象,只需要car2.setName(car1.getName)与car2.setColor(ca ...
- java复制两个对象报异常_Java中复制两个不同类的对象的属性
Apache的开源包BeanUtils用来复制两个对象的属性,要使用这个Apache的开源包,要先去官网下载commons-beanutils-1.X.jar包,http://www.apache.o ...
- Java反射 - 2(对象复制,父类域,内省)
为什么要复制对象?假设有个类Car,包含name,color2个属性,那么将car1对象复制给car2对象,只需要car2.setName(car1.getName)与car2.setColor(ca ...
- php对象复制,PHP 对象复制 - 对象复制 - phpStudy
对象复制 在多数情况下,我们并不需要完全复制一个对象来获得其中属性.但有一个情况下确实需要:如果你有一个 GTK窗口对象,该对象持有窗口相关的资源.你可能会想复制一个新的窗口,保持所有属性与原来的窗口 ...
- C#中的深复制和浅复制(在C#中克隆对象)
C#中的深复制和浅复制(在C#中克隆对象) 转载于:https://www.cnblogs.com/dalovess/p/7002947.html
- php 克隆对象,php中对象的复制与克隆
* 对象的复制与克隆 * 1.默认情况下,对象是引用传递(实际上是对象标识符的复制,后面会详细说) * 2.也就是说二个对象变量实际上是引用的是同一个对象 * 3.如果要创建一个新的对象,必须使用cl ...
- Javascript中的对象拷贝(对象复制/克隆)
Javascript中的对象拷贝(对象复制/克隆) 李俊才 CSDN:jcLee95 邮箱:291148484@163.com 1. 对象的引用 要说"拷贝"还要先说"引 ...
最新文章
- 关于在线预览word,excel,ppt,pdf的需求处理方法。
- APM - Hello Javaagent
- 机房收费--充值和退卡
- solver.prototxt参数说明(三)
- Python科学计算(一)环境简介——Anaconda Python
- jeewx 团队微信开发招募新人
- jqGrid编辑—公共规则【附视频、ppt、源码】
- pytorch学习笔记(五):线性回归的简洁实现
- 悟空 mobile.php,悟空CRM无需任何权限的SQL注入漏洞2(ThinkPHP特性)
- python esp8266 ssd1306_micropython esp8266+ssd1306(OLED) 显示中文(示例)
- oracle磁带库清洁带标签,分享那些在磁带库上爬过的坑
- hdu 5510 strstr/find/KMP
- markdown基础语法
- 云计算采用的各种虚拟化技术比较
- 适合打游戏的计算机,最适合玩游戏的笔记本电脑 广受好评的三款笔记本
- MyCat 学习笔记 第十五篇 . 数据分片后的迁移验证
- 陈强教授《机器学习及R应用》课程 第十四章作业
- Oracle客户端工具介绍
- 数据挖掘(一)频繁模式挖掘算法的实现和对比
- 常用的软件测试工具大全
热门文章
- java程序员的大数据之路(2):创建第一个Hadoop程序
- 基于ZTMap3D建设智慧楼宇建筑数字孪生运维管理平台
- 现货黄金软件屏幕大小怎么调?
- 2021-06-03Leetcode 438.找到字符串中所有字母异位词
- PowerPCB(PADS)常见问题全集
- 客人刷卡显示成功但是服务器连接显示超时,POS机刷卡故障解决方案.xls
- 工业相机 linux驱动软件,机器视觉软件及工业相机软件下载 - pylon, ToF 等 | Basler...
- combus通讯_rofibus光纤通讯模块
- 生产制造企业车间生产管理系统分析介绍
- 俄罗斯方块的设计与实现