PHP对象的浅复制与深复制的实例详解

 更新时间:2017年10月26日 11:43:24   作者:无奈的朱熹  
这篇文章主要介绍了PHP对象的浅复制与深复制的实例详解的相关资料,希望通过本文能帮助到大家,让大家理解掌握这部分内容,需要的朋友可以参考下

PHP对象的浅复制与深复制的实例详解

最近在看原型模式时注意到这个问题~~PHP中对象 '=' 与‘clone'的区别

实例代码:

//聚合类 
class ObjA { 
  public $num = 0; 
  public $objB;//包含的对象 
  function __construct() { 
    $this->objB = new ObjB(); 
  } 
  //只有实现了下面方法聚合类 才能实现深复制 
  /*function __clone() { 
    $this->objB = clone $this->objB; 
  }*/ 
} 
 
class ObjB { 
  public $num2 = 0; 
} 
 
//原型对象 
$objA = new ObjA(); 
 
//复制对象(‘='复制引用) 
$objA2 = $objA; 
$objA2->num = 2; 
//随着$objA2->num的变化 $objA->num也变化了 
print_r($objA->num.'<br/>');//结果为2 
print_r($objA2->num.'<br/>');//结果为2 
 
//复制对象(‘clone'关键字克隆) 
$objA3 = clone $objA; 
$objA3->num = 4; 
//随着$objA3->num的变化 $objA->num没有变化 
print_r($objA->num.'<br/>');//结果为2 
print_r($objA3->num.'<br/>');//结果为4 
//但是clone的对象(是聚合类)中包含其他对象时所包含的对象(objB)复制的是引用 
$objA3->objB->num2 = 7; 
print_r($objA3->objB->num2.'<br/>');//结果是7 
print_r($objA->objB->num2.'<br/>');//结果是7</pre> 

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

相关文章

  • php实现jQuery扩展函数

    php实现jQuery扩展函数

    今天在运行书上的jQuery代码时,不知道是书上弄错了,还是我的jQuery版本的问题,例子上面有一个jQuery函数不存在。
    2009-10-10
  • PHP简单读取PDF页数的实现方法

    PHP简单读取PDF页数的实现方法

    这篇文章主要介绍了PHP简单读取PDF页数的实现方法,涉及php针对文件的读取及正则运算等相关操作技巧,需要的朋友可以参考下
    2016-07-07
  • PHP入门基础之注释的写法

    PHP入门基础之注释的写法

    PHP是在服务器端执行的脚本语言,是常用的网站编程语言。那么PHP的注释方法是什么呢?下面我们来详细了解PHP中注释的写法
    2022-06-06
  • PHP正确配置mysql(apache环境)

    PHP正确配置mysql(apache环境)

    以前说实话也配置过不少PHP网站,不过今天在弄一个CMS时还是出现了一个不可饶恕的错误,无法连接mysql
    2011-08-08
  • php Undefined index和Undefined variable的解决方法

    php Undefined index和Undefined variable的解决方法

    这段时间在做项目过程中老是出现这个提示,起初是用$act来接受表单post过来的数据
    2008-03-03
  • php用wangeditor3实现图片上传功能

    php用wangeditor3实现图片上传功能

    在本篇文章中小编给大家整理的是关于php用wangeditor3实现图片上传功能的实例代码和相关内容,有需要的朋友们学习下。
    2019-08-08
  • php 生成随机验证码图片代码

    php 生成随机验证码图片代码

    一个最简单的生成随机验证码图片的例子
    2010-02-02
  • php下的原生ajax请求用法实例分析

    php下的原生ajax请求用法实例分析

    这篇文章主要介绍了php下的原生ajax请求用法,结合实例形式分析了前台原生ajax请求与后台PHP响应相关操作技巧,需要的朋友可以参考下
    2020-02-02
  • php回调函数处理数组操作示例

    php回调函数处理数组操作示例

    这篇文章主要介绍了php回调函数处理数组操作,结合实例形式详细分析了PHP回调函数遍历与过滤数组相关操作技巧与注意事项,需要的朋友可以参考下
    2020-04-04
  • PHP常用日期加减计算方法实例小结

    PHP常用日期加减计算方法实例小结

    这篇文章主要介绍了PHP常用日期加减计算方法,结合实例形式总结分析了php日期计算常见的时区设置、date日期转换、计算等相关操作技巧,需要的朋友可以参考下
    2018-07-07

最新评论