亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

clone方法,是不是兩個對象指向一個引用

比如說有兩個對象都是同一個原型clone出來的,如果修改了一個對象的值,另一個會不會受到影響,應該會吧。。。

?

正在回答

3 回答

并不會,clone出來的對象已經是另一個對象了,就比如我執行下面的代碼

class?Animal{
	public?$name?=?"Cat";
}
$cat?=?new?Animal();
echo?$cat->name."\n";

$dog?=?clone?$cat;
echo?$dog->name."\n";

$dog->name?=?"Dog";
echo?$dog->name."\n";

var_dump($dog);
var_dump($cat);

然后在運行的結果如下:

Cat
Cat
Dog
object(Animal)#2?(1)?{
??["name"]=>
??string(3)?"Dog"
}
object(Animal)#1?(1)?{
??["name"]=>
??string(3)?"Cat"
}
[Finished?in?0.3s]

注意,我var_dump出來的兩個對象的#后面的id值是不同的,也就是說這是兩個不同的對象,那么改變了Dog對象的name值也不會對Cat對象造成影響。

1 回復 有任何疑惑可以回復我~
#1

KingZero00

忘了在第11行代碼下面輸入 echo $cat->name."\n";, 結果會是'Cat',不信你可以試一下
2016-08-02 回復 有任何疑惑可以回復我~

PHP的clone是淺復制,克隆的新對象只是源對象的引用

0 回復 有任何疑惑可以回復我~

一樣的疑惑,如果是指針的話,我也覺得會

0 回復 有任何疑惑可以回復我~
#1

qq_陌_37

并不會呀,克隆的對象中的變量的地址已經和原型類重的不一樣了。
2019-05-14 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

clone方法,是不是兩個對象指向一個引用

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號