Comment pouvez-vous modifier la copie d'un objet pendant une opération de clonage?Comment pouvez-vous modifier la copie d'un objet lors d'une opération de clonage?
0
A
Répondre
0
$clone = clone $object;
modify($clone);
Bien vrai, cela est après l'opération de clonage; Je n'ai pas la moindre idée comment le faire pendant l'opération (si elle est encore possible)
3
Utilisation __clone()
: http://www.php.net/manual/en/language.oop5.cloning.php
1
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());
L'objet est créé à partir d'une classe que vous avez créé ou est l'objet créé à partir d'un classe que vous ne pouvez pas modifier, ou sous-classe? – kiamlaluno