PHP clone 關鍵字
示例
建立物件的副本
<?php
class MyClass {
public $color;
public $amount;
}
$obj = new MyClass();
$obj->color = "red";
$obj->amount = 5;
$copy = clone $obj;
print_r($copy);
?>
自己動手試一試 »
定義和用法
clone
關鍵字用於建立物件的副本。
如果屬性是對另一個變數或物件的引用,則僅複製該引用。物件始終透過引用傳遞,因此如果原始物件在其屬性中有另一個物件,則副本將指向同一個物件。可以透過在類中建立 __clone()
方法來更改此行為。
相關頁面
有關類的更多資訊,請參閱我們的 PHP 類和物件教程。
更多示例
示例
建立包含引用的物件的副本
<?php
class MyClass {
public $amount;
}
// 建立一個帶有引用的物件
$value = 5;
$obj = new MyClass();
$obj->amount = &$value;
// 克隆物件
$copy = clone $obj;
// 更改原始物件中的值
$obj->amount = 6;
// 副本也已更改
print_r($copy);
?>
自己動手試一試 »
示例
使用 __clone()
方法斷開被複制物件中的引用
<?php
class MyClass {
public $amount;
public function __clone() {
$value = $this->amount;
unset($this->amount); // unset 斷開引用
$this->amount = $value;
}
}
// 建立一個帶有引用的物件
$value = 5;
$obj = new MyClass();
$obj->amount = &$value;
// 克隆物件
$copy = clone $obj;
// 更改原始物件中的值
$obj->amount = 6;
// 副本未更改
print_r($copy);
?>
自己動手試一試 »
❮ PHP 關鍵字