clone/__clone/深復(fù)制/淺復(fù)制

__clone()是在clone對象時(shí)自動調(diào)用的方法。以上程序執(zhí)行結(jié)果如下:

如圖$p1$p2是一樣的,注意開頭的那個Person#1;
而用clone語句,則把引用和所指向的內(nèi)容全復(fù)制了。由于在clone時(shí),自動調(diào)用__clone()語句,所以類的名稱name變成了xiaoming。

  • clone是淺復(fù)制:
    利用clone方法,如果在一個類中,引用了其他對象,則克隆后,所有的引用仍然指向到原來的對象。即:對象克隆前克隆后,引用的對象沒有克隆。這樣的情況便是淺復(fù)制。

  • 相應(yīng)的自然是深復(fù)制了。。

或者可以這樣說:因?yàn)閏lone是淺復(fù)制,所以可以用__clone()方法復(fù)制對象所引用的對象。這樣clone方法也可以達(dá)到深復(fù)制的功能。

  • 在代碼中常用到的是:
    代碼中的sql語句或者框架中的sql寫法,寫一半時(shí),可以clone一下,后面跟著的其它不同語句,在不同場景下可以加不同的。

好像思路有點(diǎn)亂,偷張圖:

上圖相當(dāng)于復(fù)制query,筆者以前剛接觸tp5的query時(shí),還不知道clone,曾試圖用同一個query加不同的條件,最后郁郁而……只有放棄了這種寫法。所以第一次看到上圖中的寫法時(shí),有點(diǎn)小激動。

這篇文章可以看一下:php clone的使用場景

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容