【发布时间】:2010-06-22 23:56:35
【问题描述】:
如何在克隆操作期间修改对象的副本?
【问题讨论】:
-
对象是从您创建的类创建的,还是从您无法修改的类或子类创建的对象?
如何在克隆操作期间修改对象的副本?
【问题讨论】:
【讨论】:
class MyClass {
private $myArray = array();
public function pushSomethingToArray($var) {
array_push($this->myArray, $var);
} // function pushSomethingToArray()
public function getArray() {
return $this->myArray;
} // function getArray()
public function __clone()
{
// clear array
$this->myArray = array();
} // function __clone()
}
$myObj = new MyClass();
$myObj->pushSomethingToArray('blue');
$myObj->pushSomethingToArray('orange');
$myObjClone = clone $myObj;
$myObjClone->pushSomethingToArray('red');
var_dump($myObj->getArray());
echo '<br />';
var_dump($myObjClone->getArray());
【讨论】:
$clone = clone $object;
modify($clone);
虽然是这样,但这是在克隆操作之后;我不知道如何在操作期间(如果可能的话)
【讨论】: