PHP 快速導覽 - clone 複製物件

關鍵字 (keyword) clone 可以將物件 (object) 複製給另一個變數 (variable) ,此會執行內建的 __clone() 方法 (method) 。



舉例如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
class Demo {
    static $counter = 0;
     
    public function __clone() {
        echo "grow as a clone...\n";
        self::$counter++;
    }
}
 
$a = new Demo();
$b = clone $a;
$c = clone $a;
$d = clone $b;
$e = clone $c;
echo Demo::$counter;
 
/* 《程式語言教學誌》的範例程式
    檔名:class19.php
    功能:示範 PHP 程式
    作者:張凱慶
    時間:西元 2013 年 2 月 */
?>


此例中我們改寫 __clone() 方法,並且以 $counter 紀錄 clone 的使用紀錄
2
3
4
5
6
7
8
9
class Demo {
    static $counter = 0;
     
    public function __clone() {
        echo "grow as a clone...\n";
        self::$counter++;
    }
}


下面建立 Demo 的物件後,連續使用 clone 四次
11
12
13
14
15
16
$a = new Demo();
$b = clone $a;
$c = clone $a;
$d = clone $b;
$e = clone $c;
echo Demo::$counter;


執行結果如下



中英文術語對照
關鍵字keyword
物件object
變數variable
方法method


您可以繼續參考
類別與物件


相關目錄
回 PHP 快速導覽
回 PHP 教材
回首頁


參考資料
http://www.php.net/manual/en/language.oop5.cloning.php

沒有留言: