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 删除数组元素
Jan 16 PHP
php安全配置 如何配置使其更安全
Dec 16 PHP
PHP函数spl_autoload_register()用法和__autoload()介绍
Feb 04 PHP
php学习笔记之面向对象编程
Dec 29 PHP
php去除HTML标签实例
Nov 06 PHP
2个比较经典的PHP加密解密函数分享
Jul 01 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
Feb 03 PHP
PHP substr()函数参数解释及用法讲解
Nov 23 PHP
PHP按符号截取字符串的指定部分的实现方法
Sep 10 PHP
PHP实现微信退款功能
Oct 02 PHP
PHP 获取客户端 IP 地址的方法实例代码
Nov 11 PHP
laravel使用数据库测试注意事项
Apr 10 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
php防注
2007/01/15 PHP
解析php常用image图像函数集
2013/06/24 PHP
thinkphp3.2中实现phpexcel导出带生成图片示例
2017/02/14 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
Thinkphp5框架中引入Markdown编辑器操作示例
2020/06/03 PHP
javascript window对象属性整理
2009/10/24 Javascript
jQuery中add实现同时选择两个id对象
2010/10/22 Javascript
script标签的 charset 属性使用说明
2010/12/04 Javascript
新发现一个骗链接的方法(js读取cookies)
2012/01/11 Javascript
jQuery 删除或是清空某个HTML元素示例
2014/08/04 Javascript
js完美实现@提到好友特效(兼容各大浏览器)
2015/03/16 Javascript
如何用jQuery实现ASP.NET GridView折叠伸展效果
2015/09/26 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
2016/05/25 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
2016/08/25 Javascript
基于JS分页控件实现简单美观仿淘宝分页按钮效果
2016/11/07 Javascript
nodejs基础知识
2017/02/03 NodeJs
React styled-components设置组件属性的方法
2018/08/07 Javascript
jQuery+ajax实现批量删除功能完整示例
2019/06/06 jQuery
javascript实现动态时钟的启动和停止
2020/07/29 Javascript
最基础的Python的socket编程入门教程
2015/04/23 Python
python实现连连看辅助之图像识别延伸
2019/07/17 Python
Python中的Cookie模块如何使用
2020/06/04 Python
python如何调用java类
2020/07/05 Python
python使用matplotlib绘制折线图的示例代码
2020/09/22 Python
Django扫码抽奖平台的配置过程详解
2021/01/14 Python
澳大利亚窗帘商店:Curtain Wonderland
2019/12/01 全球购物
Vans(范斯)新西兰官方网站:美国原创极限运动品牌
2020/09/19 全球购物
如何用Python来进行查询和替换一个文本字符串
2014/01/02 面试题
平面设计师的工作职责
2013/11/21 职场文书
三字经教学反思
2014/04/26 职场文书
银行优秀员工事迹材料
2014/05/29 职场文书
园林专业毕业生自荐信
2014/07/04 职场文书
关于工作时间玩手机的检讨书
2014/09/18 职场文书
服务整改报告
2014/11/06 职场文书
学年个人总结范文
2015/03/05 职场文书
2016情人节宣传语
2015/07/14 职场文书