Pages 1 / Total 1 1
已被查看541次    只看楼主
[原创]PHP对象克隆二
主题
松风水月  




等级:终级天王
积分:3175
经验:1008
魅力:2167
威望:0
财富:2432
金钱:0.00元
帖子:147
注册:2007-04-11 16:29
楼主 资料 短消息
[原创]PHP对象克隆二 2007-08-08 16:17
在对象的克隆期间,我们有时候不希望把所有的属性克隆过来,希望有些局部位置做一点改动,如一个字段的值。这时可以采用要在克隆的类中定义一个方法__clone(),从而调整对象的克隆行为,即对克隆的过程中,一些局部的代码可以设置成自己需要的代码。其执行是在现有的对象成员复制到目标对象之后,还会执行__clone()方法指定的操作。
下面创建一个案例,演示一下__clone()方法的使用。该案例的代码如下:
案例6-2
<?php
class MyCloneable {
  public static $id = 0;
   function __construct() {
       $this->id = self::$id++;
   }
   function __clone() {
       $this->address = "New York";
       $this->id = self::$id++;
   }
}
$obj = new MyCloneable();
$obj->name = "Hello";
$obj->address = "Tel-Aviv";
print $obj->id . "\n";
$obj_cloned = clone $obj;
print $obj_cloned->id . "\n";
print $obj_cloned->name . "\n";
print $obj_cloned->address . "\n";
?>
将上述代码保存,文件名称为clone1.php,并保存到指定的位置。打开IE浏览器,在地址栏中输入http://localhost:8080/class/clone1.php,直接就可以运行了


IP:123.*.*.*     顶部
论坛交流 ›› PHP ›› [原创]PHP对象克隆二