克隆的方法可以沒(méi)有參數(shù),但它同時(shí)包含this和that指針(that指向被復(fù)制的對(duì)象)。如果你選擇克隆自己,你要小心復(fù)制任何你要你的對(duì)象包含的信息,從that到this,如果你用__clone來(lái)復(fù)制,php不會(huì)執(zhí)行任何隱性的復(fù)制,下面顯示了一個(gè)用系列序數(shù)來(lái)自動(dòng)化對(duì)象的例子:
復(fù)制代碼 代碼如下:
class ObjectTracker //對(duì)象跟蹤器
{
private static $nextSerial = 0;
private $id;
private $name;
function __construct($name) //構(gòu)造函數(shù)
{
$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技術(shù):PHP 5.0對(duì)象模型深度探索之對(duì)象復(fù)制,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。