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获取远程图片并把它保存到本地的代码
Apr 07 PHP
php二分法在IP地址查询中的应用
Aug 12 PHP
对PHP语言认识上需要避免的10大误区
Jun 12 PHP
PHP把小数转成整数3种方法
Jun 30 PHP
PHP魔术引号所带来的安全问题分析
Jul 15 PHP
php专用数组排序类ArraySortUtil用法实例
Apr 03 PHP
thinkphp3.x中session方法的用法分析
May 20 PHP
Yii框架用户登录session丢失问题解决方法
Jan 07 PHP
php图形jpgraph操作实例分析
Feb 22 PHP
Win10 下安装配置IIS + MySQL + nginx + php7.1.7
Aug 04 PHP
PHP 实现公历日期与农历日期的互转换
Sep 13 PHP
PHP校验15位和18位身份证号的类封装
Nov 07 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
在普通HTTP上安全地传输密码
2007/07/21 PHP
浅谈PHP 闭包特性在实际应用中的问题
2009/10/30 PHP
一步一步学习PHP(4) php 函数 补充2
2010/02/15 PHP
php中sql注入漏洞示例 sql注入漏洞修复
2014/01/24 PHP
ThinkPHP模板Switch标签用法示例
2014/06/30 PHP
php使用sql server验证连接数据库的方法
2014/12/25 PHP
JQuery 网站换肤功能实现代码
2009/11/02 Javascript
jquery插件 cluetip 关键词注释
2010/01/12 Javascript
Javascript的一种模块模式
2010/09/08 Javascript
3分钟写出来的Jquery版checkbox全选反选功能
2013/10/23 Javascript
JS实现的4种数字千位符格式化方法分享
2015/03/02 Javascript
javascript实现密码强度显示
2015/03/18 Javascript
浅谈angular.js中实现双向绑定的方法$watch $digest $apply
2015/10/14 Javascript
JS显示日历和天气的方法
2016/03/01 Javascript
基于原生js淡入淡出函数封装(兼容IE)
2016/10/20 Javascript
详解获取jq ul第一个li定位的四种解决方案
2016/11/23 Javascript
详解vue-cli与webpack结合如何处理静态资源
2017/09/19 Javascript
js 判断一个数字是不是2的n次方幂的实例
2017/11/26 Javascript
百度小程序自定义通用toast组件
2019/07/17 Javascript
公众号SVG动画交互实战代码
2020/05/31 Javascript
vue通过过滤器实现数据格式化
2020/07/20 Javascript
python实现查询苹果手机维修进度
2015/03/16 Python
Python使用urllib2模块实现断点续传下载的方法
2015/06/17 Python
Python + Flask 实现简单的验证码系统
2019/10/01 Python
基于Python实现拆分和合并GIF动态图
2019/10/22 Python
Python CSS选择器爬取京东网商品信息过程解析
2020/06/01 Python
自学python用什么系统好
2020/06/23 Python
python help函数实例用法
2020/12/06 Python
New Balance天猫官方旗舰店:始于1906年,百年慢跑品牌
2017/11/15 全球购物
Conforama瑞士:家具、厨房、电器、装饰
2020/09/06 全球购物
小学生一分钟演讲稿
2014/08/26 职场文书
正风肃纪查摆剖析材料
2014/10/10 职场文书
离职信范文
2015/06/23 职场文书
2015大学迎新晚会主持词
2015/07/16 职场文书
高中历史教学反思
2016/02/19 职场文书
python 对图片进行简单的处理
2021/06/23 Python