PHP 5.0对象模型深度探索之对象复制


Posted in PHP onMarch 27, 2008

默认地,用__clone方法将建立一个与原对象拥有相同属性和方法的对象. 如果你想在克隆时改变默认的内容,你要在__clone中覆写(属性或方法)。

克隆的方法可以没有参数,但它同时包含this和that指针(that指向被复制的对象)。如果你选择克隆自己,你要小心复制任何你要你的对象包含的信息,从that到this,如果你用__clone来复制,PHP不会执行任何隐性的复制,下面显示了一个用系列序数来自动化对象的例子:

class ObjectTracker //对象跟踪器  
{  
 private static $nextSerial = 0;  
 private $id;  
 private $name;   function __construct($name) //构造函数  
 {  

$this->name = $name;  

$this->id = ++self::$nextSerial;  
 }  
 function __clone() //克隆  
 {  

$this->name = "Clone of $this->name";  

$this->id = ++self::$nextSerial;  
 }  
 function getId() //获取id属性的值  
 {  

return($this->id);  
 }  
 function getName() //获取name属性的值  
 {  

return($this->name);  
 }  
}  
$ot = new ObjectTracker("Zeev's Object");  
$ot2 = clone$ot;  
//输出: 1 Zeev's Object  
print($ot->getId() . " " . $ot->getName() . "");  
//输出: 2 Clone of Zeev's Object  
print($ot2->getId() . " " . $ot2->getName() . "");  
?>

PHP 相关文章推荐
与数据库连接
Oct 09 PHP
PHP json_decode函数详细解析
Feb 17 PHP
CI框架中zip类应用示例
Jun 17 PHP
PHP解码unicode编码的中文字符代码分享
Aug 13 PHP
PHP实现的QQ空间g_tk加密算法
Jul 09 PHP
php实现分页显示
Nov 03 PHP
开启PHP Static 关键字之旅模式
Nov 13 PHP
微信公众号开发客服接口实例代码
Oct 21 PHP
PHP中empty,isset,is_null用法和区别
Feb 19 PHP
thinkphp3.2实现跨控制器调用其他模块的方法
Mar 14 PHP
ThinkPHP5.0 图片上传生成缩略图实例代码说明
Jun 20 PHP
apache集成php7.3.5的详细步骤
Jun 20 PHP
PHP 5.0对象模型深度探索之属性和方法
Mar 27 #PHP
php简单静态页生成过程
Mar 27 #PHP
优化PHP代码的53条建议
Mar 27 #PHP
PHP连接access数据库
Mar 27 #PHP
某大型网络公司应聘时的笔试题目附答案
Mar 27 #PHP
php 无限极分类
Mar 27 #PHP
mysql时区问题
Mar 26 #PHP
You might like
我的论坛源代码(三)
2006/10/09 PHP
asp和php下textarea提交大量数据发生丢失的解决方法
2008/01/20 PHP
PHP UTF8编码内的繁简转换类
2009/07/20 PHP
利用PHP函数计算中英文字符串长度的方法
2014/11/11 PHP
PHP加密技术的简单实现
2016/09/04 PHP
使用PHP免费发送定时短信的实例
2016/10/24 PHP
PHP自动补全表单的两种方法
2017/03/06 PHP
JS 建立对象的方法
2007/04/21 Javascript
javascript 命名空间以提高代码重用性
2008/11/13 Javascript
Javascript 定时器调用传递参数的方法
2009/11/12 Javascript
jQuery筛选器children()案例详解(图文)
2013/02/17 Javascript
利用js(jquery)操作Cookie的方法说明
2013/12/19 Javascript
实例讲解JQuery中this和$(this)区别
2014/12/08 Javascript
JavaScript中的函数模式详解
2015/02/11 Javascript
javascript基于DOM实现省市级联下拉框的方法
2015/05/14 Javascript
javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
2015/07/27 Javascript
VUEJS实战之修复错误并且美化时间(2)
2016/06/13 Javascript
js Date()日期函数浏览器兼容问题解决方法
2017/09/12 Javascript
Mint UI组件库CheckList使用及踩坑总结
2018/12/20 Javascript
vue-cli的build的文件夹下没有dev-server.js文件配置mock数据的方法
2019/04/17 Javascript
微信小程序非跳转式组件授权登录的方法示例
2019/05/22 Javascript
小程序多图列表实现性能优化的方法步骤
2019/05/28 Javascript
nodejs读取图片返回给浏览器显示
2019/07/25 NodeJs
JavaScript实现简单验证码
2020/08/24 Javascript
json.stringify()与json.parse()的区别以及用处
2021/01/25 Javascript
[39:53]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.19
2020/11/19 DOTA
Python多线程编程(一):threading模块综述
2015/04/05 Python
Python字符串中查找子串小技巧
2015/04/10 Python
Python中矩阵创建和矩阵运算方法
2018/08/04 Python
python实现对任意大小图片均匀切割的示例
2018/12/05 Python
推荐技术人员一款Python开源库(造数据神器)
2020/07/08 Python
Python切片列表字符串如何实现切换
2020/08/06 Python
2014年党的群众路线整改措施思想汇报
2014/10/12 职场文书
教师节大会主持词
2015/07/06 职场文书
Python爬虫之爬取某文库文档数据
2021/04/21 Python
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
2021/04/25 Python