Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网站建设 > PHP > 第五节--克隆 -- PHP5的类与对象 [5]
【标  题】:第五节--克隆 -- PHP5的类与对象 [5]
【关键字】:--,--,PHP5
【来  源】:http://www.cublog.cn/u/26212/showart.php?id=210776

第五节--克隆 -- PHP5的类与对象 [5]

Your Ad Here
文章来源:Internet
PHP5中的对象模型通过引用来调用对象, 但有时你可能想建立一个对象的副本,并希望原来的对象的改变不影响到副本 . 为了这样的目的,PHP定义了一个特殊的方法,称为__clone. 像__construct和__destruct一样,前面有两个下划线.

默认地,用__clone方法将建立一个与原对象拥有相同属性和方法的对象. 如果你想在克隆时改变默认的内容,你要在__clone中覆写(属性或方法).

克隆的方法可以没有参数,但它同时包含this和that指针(that指向被复制的对象). 如果你选择克隆自己,你要小心复制任何你要你的对象包含的信息,从that到this. 如果你用__clone来复制. PHP不会执行任何隐性的复制,

下面显示了一个用系列序数来自动化对象的例子:

<?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 $that->name";
$this->id = ++self::$nextSerial;
}

function getId() //获取id属性的值
{
return($this->id);
}

function getName() //获取name属性的值
{
return($this->name);
}
}

$ot = new ObjectTracker("Zeev's Object");
$ot2 = $ot->__clone();

//输出: 1 Zeev's Object
print($ot->getId() . " " . $ot->getName() . "<br>");

//输出: 2 Clone of Zeev's Object
print($ot2->getId() . " " . $ot2->getName() . "<br>");
?>
第六节--访问属性和方法 -- PHP5的类与对象 [6]:【上一篇】
第四节--构造函数和析构函数 -- PHP5的类与对象 [4]:【下一篇】
【相关文章】
  • 第六节--访问属性和方法 -- PHP5的类与对象 [6]
  • 第七节--类的静态成员 -- PHP5的类与对象 [7]
  • 第八节--访问方式 -- PHP5的类与对象 [8]
  • 第九节--绑定 -- PHP5的类与对象 [9]
  • 第十节--抽象方法和抽象类 -- PHP5的类与对象 [10]
  • 第十一节--重载 -- PHP5的类与对象 [11]
  • 第十二节--类的自动加载 -- PHP5的类与对象 [12]
  • 第十三节--对象串行化 -- PHP5的类与对象 [13]
  • 第十四节--命名空间 -- PHP5的类与对象 [14]
  • 第十五节--ZEND引擎的发展 -- PHP5的类与对象 [15]
  • 【随机文章】
  • 图形统计信息
  • 第一篇译作:Working With Unicode in C++(在c++中使用Unicode)
  • Ruby完全读书指南
  • 悟 - 三易其稿
  • USB的驱动
  • Illustrator制作卡通全攻略
  • 3ds Max 制作卧室效果图(1)
  • .Net Remoting体系架构
  • 发行版发布: NepaLinux 1.1
  • 禁止自动共享
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.