创建对象的副本:
<?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;
}
// Create an object with a reference
$value = 5;
$obj = new MyClass();
$obj->amount = &$value;
// Clone the object
$copy = clone $obj;
// Change the value in the original object
$obj->amount = 6;
// The copy is changed
print_r($copy);
?>
亲自试一试 »
用一个__clone()
中断复制对象中的引用的方法:
<?php
class MyClass {
public $amount;
public function __clone() {
$value = $this->amount;
unset($this->amount); // Unset breaks references
$this->amount = $value;
}
}
// Create an object with a reference
$value = 5;
$obj = new MyClass();
$obj->amount = &$value;
// Clone the object
$copy = clone $obj;
// Change the value in the original object
$obj->amount = 6;
// The copy is not changed
print_r($copy);
?>
亲自试一试 »
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!