<?php
/**
* Created by PhpStorm.
* User: tusi
* Date: 2017/8/25
* Time: 10:21
*/
class SubObject
{
static $instances=0;
public $instance;
public function __construct(){
$this->instance=++self::$instances;
}//構造函數,每實例化對象一次,將公有屬性$instance值加1
public function __clone(){
$this->instance=++self::$instances;
}//對象複製函數,如果對象中定義了__clone方法,則複製生成的對象中的__clone方法會被調用
}
class MyCloneable
{
public $object1;
public $object2;
function __clone(){
//強制複製一份this->object1,否則仍然指向同一個對象。
$this->object1=clone $this->object1;
}
}
$obj=new MyCloneable();
$obj->object1=new SubObject();
$obj->object2=new SubObject();
$obj2=clone $obj;
echo '<pre>';
echo "Original Object:"."<br />";
var_dump($obj);
echo "Cloned Object:"."<br />";
var_dump(($obj2));
php對象克隆
運行如下:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.