PHP对象克隆clone用法示例

作者:ligbee 时间:2024-05-02 17:33:51 

本文实例讲述了PHP对象克隆clone用法。分享给大家供大家参考,具体如下:

浅克隆:只是克隆对象中的非对象非资源数据,即对象中属性存储的是对象类型,则会出现克隆不完全


<?php
class B{
public $val = 10;
}
class A{
public $val = 20;
public $b;
public function __construct(){
 $this->b = new B();
}
}
$obj_a = new A();
$obj_b = clone $obj_a;
$obj_a->val = 30;
$obj_a->b->val = 40;
var_dump($obj_a);
echo '<br>';
var_dump($obj_b);

运行结果如下:


object(A)[1]
public 'val' => int 30
public 'b' =>
object(B)[2]
 public 'val' => int 40

object(A)[3]
public 'val' => int 20
public 'b' =>
object(B)[2]
 public 'val' => int 40

深克隆:一个对象的所有属性数据都彻底的复制,需要使用魔术方法__clone(),并在里面实现深度克隆


<?php
class B{
public $val = 10;
}
class A{
public $val = 20;
public $b;
public function __construct(){
 $this->b = new B();
}
public function __clone(){
 $this->b = clone $this->b;
}
}
$obj_a = new A();
$obj_b = clone $obj_a;
$obj_a->val = 30;
$obj_a->b->val = 40;
var_dump($obj_a);
echo '<br>';
var_dump($obj_b);

运行结果如下:


object(A)[1]
public 'val' => int 30
public 'b' =>
object(B)[2]
 public 'val' => int 40

object(A)[3]
public 'val' => int 20
public 'b' =>
object(B)[4]
 public 'val' => int 10

希望本文所述对大家PHP程序设计有所帮助。

标签:PHP,对象克隆,clone
0
投稿

猜你喜欢

  • 一个表单焦点效果函数

    2008-01-19 10:59:00
  • golang-redis之sorted set类型操作详解

    2024-02-02 05:19:20
  • 实例验证MySQL|update字段为相同的值是否会记录binlog

    2024-01-21 01:37:40
  • python中实现精确的浮点数运算详解

    2022-12-27 07:08:27
  • 使用动画实现微信读书的换一批效果(两种方式)

    2023-10-23 14:30:55
  • ubuntu安装mysql数据库方法

    2024-01-13 06:33:53
  • Python使用scipy模块实现一维卷积运算示例

    2022-10-18 07:15:19
  • python实现二维码扫码自动登录淘宝

    2022-09-22 07:18:02
  • 基于信息排序的信息理解

    2008-05-16 10:37:00
  • Python正则表达式re.sub()用法详解

    2022-05-29 14:30:01
  • 让你一文弄懂Pandas文本数据处理

    2023-07-17 19:12:08
  • Python实现PS滤镜Fish lens图像扭曲效果示例

    2022-02-01 05:25:02
  • 快速让MySQL数据库服务器支持远程连接

    2010-01-16 13:06:00
  • Go语言omitempty选项的实现

    2024-04-25 15:12:40
  • asp防止盗链HTTP_REFERER判断代码

    2010-03-12 10:41:00
  • GetPageSize和GetPageScroll:获取页面大小、窗口大小和滚动条位置

    2008-12-27 22:30:00
  • MySQL配置文件my.ini的使用解读

    2024-01-15 09:40:26
  • python多线程中的定时器你了解吗

    2021-09-01 23:39:21
  • Delphi 本地路径的创建、清空本地指定文件夹下的文件

    2023-06-23 19:49:20
  • centos7 PHP环境搭建 GD库 等插件安装方法

    2023-11-05 21:25:38
  • asp之家 网络编程 m.aspxhome.com