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&java(一)
Oct 09 PHP
第十五节--Zend引擎的发展
Nov 16 PHP
分享PHP入门的学习方法
Jan 02 PHP
用PHP实现的生成静态HTML速度快类库
Mar 31 PHP
PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法
May 28 PHP
php函数与传递参数实例分析
Nov 15 PHP
全面解析PHP操作Memcache基本函数
Jul 14 PHP
php获取字符串前几位的实例(substr返回字符串的子串用法)
Mar 08 PHP
详谈phpAdmin修改密码后拒绝访问的问题
Apr 03 PHP
Ajax中的JSON格式与php传输过程全面解析
Nov 14 PHP
详解PHP版本兼容之openssl调用参数
Jul 25 PHP
TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
Sep 03 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
PDO防注入原理分析以及注意事项
2015/02/25 PHP
简单介绍PHP非阻塞模式
2016/03/03 PHP
js函数使用技巧之 setTimeout(function(){},0)
2009/02/09 Javascript
JavaScript OOP类与继承
2009/11/15 Javascript
基于jQuery的表格操作插件
2010/04/22 Javascript
JS自动生成动态HTML验证码页面
2017/06/14 Javascript
jQuery选择器_动力节点Java学院整理
2017/07/05 jQuery
vue动态路由实现多级嵌套面包屑的思路与方法
2017/08/16 Javascript
Angular4学习笔记之根模块与Ng模块
2017/09/09 Javascript
shiro授权的实现原理
2017/09/21 Javascript
微信小程序学习笔记之登录API与获取用户信息操作图文详解
2019/03/29 Javascript
js实现蒙版效果
2020/01/11 Javascript
windows下安装python paramiko模块的代码
2013/02/10 Python
Python语言的面相对象编程方式初步学习
2016/03/12 Python
django表单实现下拉框的示例讲解
2018/05/29 Python
Python使用pyshp库读取shapefile信息的方法
2018/12/29 Python
python简单贪吃蛇开发
2019/01/28 Python
基于Python3.7.1无法导入Numpy的解决方式
2020/03/09 Python
使用Django实现把两个模型类的数据聚合在一起
2020/03/28 Python
Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
2020/04/16 Python
详解python metaclass(元类)
2020/08/13 Python
python入门教程之基本算术运算符
2020/11/13 Python
python使用正则表达式匹配txt特定字符串(有换行)
2020/12/09 Python
django中ImageField的使用详解
2020/12/21 Python
全球虚拟主机商:HostGator
2017/02/06 全球购物
UNIONBAY官网:美国青少年服装品牌
2019/03/26 全球购物
如何通过 CSS 写出火焰效果
2021/03/24 HTML / CSS
在校硕士自我鉴定
2014/01/23 职场文书
仓库文员岗位职责
2014/04/06 职场文书
亲属关系公证书
2014/04/08 职场文书
生产车间标语
2014/06/11 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
大学生干部培训心得体会
2016/01/06 职场文书
Javascript使用integrity属性进行安全验证
2021/11/07 Javascript
TV动画《神废柴☆偶像》公布先导PV
2022/03/20 日漫
CentOS7 minimal 最小化安装网络设置过程
2022/12/24 Servers