【发布时间】:2011-06-25 00:02:28
【问题描述】:
我有一个对象 $objDummy 属于某个类 ClassDummy,另一个对象是
$objClone = clone $objDummy;
然后我对$objClone进行任何更改,$objDummy也更改了。
我不想那样做。
我怎样才能让它工作?
编辑: 作为对克里斯的回应。 这是一个例子
<?php
class myAnotherObject{
public $myAnotherVar =10;
}
class myObject {
public $myVar = false;
function __construct() {
$this->myVar = new myAnotherObject();
}
}
$nl = "\n";
//*
$nl = '<br />';
//*/
$obj1 = new myObject();
echo 'obj1->myVar->myAnotherVar: '.$obj1->myVar->myAnotherVar;
$obj2 = clone $obj1;
echo $nl.'obj1->myVar->myAnotherVar: '.$obj1->myVar->myAnotherVar.', obj2->myVar->myAnotherVar: '.$obj2->myVar->myAnotherVar;
$obj2->myVar->myAnotherVar = 20;
echo $nl.'obj1->myVar->myAnotherVar: '.$obj1->myVar->myAnotherVar.', obj2->myVar->myAnotherVar: '.$obj2->myVar->myAnotherVar;
输出是
obj1->myVar->myAnotherVar: 10
obj1->myVar->myAnotherVar: 10, obj2->myVar->myAnotherVar: 10
obj1->myVar->myAnotherVar: 20, obj2->myVar->myAnotherVar: 20
【问题讨论】:
-
请注意:克隆不需要 () 大括号,因为它不是函数,但更像“新”运算符