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将数据导入到Foxmail
Oct 09 PHP
多重?l件?合查?(二)
Oct 09 PHP
一些php技巧与注意事项分析
Feb 03 PHP
php中curl、fsocket、file_get_content三个函数的使用比较
May 09 PHP
php实现批量压缩图片文件大小的脚本
Jul 04 PHP
PHP实现的购物车类实例
Jun 17 PHP
PHP的Yii框架入门使用教程
Feb 15 PHP
php变量与JS变量实现不通过跳转直接交互的方法
Aug 25 PHP
php无限级分类实现评论及回复功能
Feb 18 PHP
PHP面向对象程序设计之对象的遍历操作示例
Jun 12 PHP
PHP连接SQL server数据库测试脚本运行实例
Aug 24 PHP
php实现自动生成验证码的实例讲解
Nov 17 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获取文章上一页与下一页的方法
2014/12/01 PHP
form中限制文本字节数js代码
2007/06/10 Javascript
JS版网站风格切换实例代码
2008/10/06 Javascript
html a标签-超链接中confirm方法使用介绍
2013/01/04 Javascript
基于jquery实现的文字淡入淡出效果
2013/11/14 Javascript
js实现简易的单数字随机抽奖(0-9)
2020/03/19 Javascript
超漂亮的Bootstrap 富文本编辑器summernote
2016/04/05 Javascript
JS导出PDF插件的方法(支持中文、图片使用路径)
2016/07/12 Javascript
jQuery中DOM节点的删除方法总结(超全面)
2017/01/22 Javascript
JS中LocalStorage与SessionStorage五种循序渐进的使用方法
2017/07/12 Javascript
利用原生js实现html5小游戏之打砖块(附源码)
2018/01/03 Javascript
React 高阶组件入门介绍
2018/01/11 Javascript
vue2.0安装style/css loader的方法
2018/03/14 Javascript
JS实现获取数组中最大值或最小值功能示例
2019/03/02 Javascript
[54:05]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第一场 1月9日
2021/03/11 DOTA
Python3里的super()和__class__使用介绍
2015/04/23 Python
解读python logging模块的使用方法
2018/04/17 Python
python操作excel的方法(xlsxwriter包的使用)
2018/06/11 Python
django_orm查询性能优化方法
2018/08/20 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
2019/10/01 Python
Python 爬取必应壁纸的实例讲解
2020/02/24 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
2020/05/26 Python
解决python 执行sql语句时所传参数含有单引号的问题
2020/06/06 Python
通过实例简单了解python yield使用方法
2020/08/06 Python
基于Python采集爬取微信公众号历史数据
2020/11/27 Python
python读取图片颜色值并生成excel像素画的方法实例
2021/02/19 Python
唤醒头发毛囊的秘密武器:Grow Gorgeous
2016/08/28 全球购物
德国在线香料制造商:Gewürzland
2020/03/10 全球购物
《狐假虎威》教学反思
2014/02/07 职场文书
教师党员一句话承诺
2014/03/28 职场文书
2014副局长群众路线对照检查材料思想汇报
2014/09/22 职场文书
合同和协议有什么区别?
2014/10/08 职场文书
教师群众路线心得体会
2014/11/04 职场文书
发布会邀请函
2015/01/31 职场文书
医学生自荐信范文
2015/03/05 职场文书
会议主持词通用版
2019/04/02 职场文书