PHP clone 关键字
示例
创建对象的副本
<?php
class MyClass {
public $color;
public $amount;
}
$obj = new MyClass();
$obj->color = "red";
$obj->amount = 5;
$copy = clone $obj;
print_r($copy);
?>
尝试一下 »
定义和用法
The 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 关键字