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 相关文章推荐
php基础知识:类与对象(4) 范围解析操作符(::)
Dec 13 PHP
php文件操作实例代码
May 10 PHP
使用php判断服务器是否支持Gzip压缩功能
Sep 24 PHP
php准确计算复活节日期的方法
Apr 18 PHP
PHP session文件独占锁引起阻塞问题解决方法
May 12 PHP
php将金额数字转化为中文大写
Jul 09 PHP
PHP实现的最大正向匹配算法示例
Dec 19 PHP
php微信公众号开发之答题连闯三关
Oct 20 PHP
PHP levenshtein()函数用法讲解
Mar 08 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
May 29 PHP
50个优秀经典PHP算法大集合 附源码
Aug 26 PHP
PHP获取php,mysql,apche的版本信息及更多服务器信息
Mar 09 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
短波问题解答
2021/02/28 无线电
用Flash图形化数据(二)
2006/10/09 PHP
在任意字符集下正常显示网页的方法二(续)
2007/04/01 PHP
CodeIgniter 完美解决URL含有中文字符串
2016/05/13 PHP
PHP编写daemon process 实例详解
2016/11/13 PHP
AJAX的使用方法详解
2017/04/29 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
JQuery 插件模板 制作jquery插件的朋友可以参考下
2010/03/17 Javascript
Javascript中的String对象详谈
2014/03/03 Javascript
jquery判断至少有一个checkbox被选中的方法
2015/06/05 Javascript
js实现的奥运倒计时时钟效果代码
2015/12/09 Javascript
全面理解JavaScript中的继承(必看)
2016/06/16 Javascript
JS实现超简单的汉字转拼音功能示例
2016/12/22 Javascript
vue.js动态数据绑定学习笔记
2017/05/19 Javascript
详解JavaScript调用栈、尾递归和手动优化
2017/06/03 Javascript
原生JS获取元素的位置与尺寸实现方法
2017/10/18 Javascript
Node.js中的异步生成器与异步迭代详解
2021/01/31 Javascript
[02:43]2014DOTA2国际邀请赛 官方Alliance战队纪录片
2014/07/14 DOTA
Python3基础之输入和输出实例分析
2014/08/18 Python
Python Requests 基础入门
2016/04/07 Python
python3写的简单本地文件上传服务器实例
2018/06/04 Python
Python内存读写操作示例
2018/07/18 Python
Python pygorithm模块用法示例【常见算法测试】
2018/08/16 Python
python事件驱动event实现详解
2018/11/21 Python
解决更改AUTH_USER_MODEL后出现的问题
2020/05/14 Python
MATLAB数学建模之画图汇总
2020/07/16 Python
Python如何绘制日历图和热力图
2020/08/07 Python
唤醒头发毛囊的秘密武器:Grow Gorgeous
2016/08/28 全球购物
林清轩官方网站:山茶花润肤油开创者
2016/10/26 全球购物
减负增效提质方案
2014/05/23 职场文书
中学生2014国庆节演讲稿:不屈的民族
2014/09/21 职场文书
欠条样本
2015/07/03 职场文书
给校长的建议书作文500字
2015/09/14 职场文书
Linux系统下安装PHP7.3版本
2021/06/26 PHP