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