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 关键字