PHP對象克隆clone用法示例
本文實(shí)例講述了PHP對象克隆clone用法。分享給大家供大家參考,具體如下:
淺克?。?/strong>只是克隆對象中的非對象非資源數(shù)據(jù),即對象中屬性存儲(chǔ)的是對象類型,則會(huì)出現(xiàn)克隆不完全
<?php class B{ public $val = 10; } class A{ public $val = 20; public $b; public function __construct(){ $this->b = new B(); } } $obj_a = new A(); $obj_b = clone $obj_a; $obj_a->val = 30; $obj_a->b->val = 40; var_dump($obj_a); echo '<br>'; var_dump($obj_b);
運(yùn)行結(jié)果如下:
object(A)[1] public 'val' => int 30 public 'b' => object(B)[2] public 'val' => int 40 object(A)[3] public 'val' => int 20 public 'b' => object(B)[2] public 'val' => int 40
深克?。?/strong>一個(gè)對象的所有屬性數(shù)據(jù)都徹底的復(fù)制,需要使用魔術(shù)方法__clone(),并在里面實(shí)現(xiàn)深度克隆
<?php class B{ public $val = 10; } class A{ public $val = 20; public $b; public function __construct(){ $this->b = new B(); } public function __clone(){ $this->b = clone $this->b; } } $obj_a = new A(); $obj_b = clone $obj_a; $obj_a->val = 30; $obj_a->b->val = 40; var_dump($obj_a); echo '<br>'; var_dump($obj_b);
運(yùn)行結(jié)果如下:
object(A)[1] public 'val' => int 30 public 'b' => object(B)[2] public 'val' => int 40 object(A)[3] public 'val' => int 20 public 'b' => object(B)[4] public 'val' => int 10
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP基本語法入門教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。
- php面向?qū)ο笕ヂ?(三)特殊的引用“$this”的使用
- PHP對象遞歸引用造成內(nèi)存泄漏分析
- PHP對象相互引用的內(nèi)存溢出實(shí)例分析
- php中引用&的用法分析【變量引用,函數(shù)引用,對象引用】
- php5對象復(fù)制、clone、淺復(fù)制與深復(fù)制實(shí)例詳解
- PHP對象的淺復(fù)制與深復(fù)制的實(shí)例詳解
- PHP動(dòng)態(tài)地創(chuàng)建屬性和方法, 對象的復(fù)制, 對象的比較,加載指定的文件,自動(dòng)加載類文件,命名空間
- PHP 5.0對象模型深度探索之對象復(fù)制
- php面向?qū)ο笕ヂ?(十一)__toString()用法 克隆對象 __call處理調(diào)用錯(cuò)誤
- php實(shí)現(xiàn)對象克隆的方法
- PHP面向?qū)ο蟪绦蛟O(shè)計(jì)高級特性詳解(接口,繼承,抽象類,析構(gòu),克隆等)
- php中對象引用和復(fù)制實(shí)例分析
相關(guān)文章
PHP獲取數(shù)組中重復(fù)最多的元素的實(shí)現(xiàn)方法
這篇文章主要介紹了PHP獲取數(shù)組中重復(fù)最多的元素的實(shí)現(xiàn)方法,通過一個(gè)自定義函數(shù)遍歷數(shù)組實(shí)現(xiàn)這一功能,是非常使用的技巧,需要的朋友可以參考下2014-11-11PHP7創(chuàng)建COOKIE和銷毀COOKIE的實(shí)例方法
在本篇文章里小編給大家整理的是關(guān)于PHP7創(chuàng)建COOKIE和銷毀COOKIE的實(shí)例方法,有需要的朋友們可以參考下。2020-02-02Can''t create/write to file ''C:\WINDOWS\TEMP\...MYSQL報(bào)錯(cuò)解決方法
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL報(bào)錯(cuò)解決方法,參考下面的方法即可。2011-06-06php+js實(shí)現(xiàn)百度地圖多點(diǎn)標(biāo)注的方法
這篇文章主要介紹了php+js實(shí)現(xiàn)百度地圖多點(diǎn)標(biāo)注的方法,涉及php結(jié)合js針對百度地圖接口調(diào)用與json操作相關(guān)技巧,需要的朋友可以參考下2016-11-11PHP實(shí)現(xiàn)生成Excel文件并導(dǎo)出的示例詳解
這篇文章主要為大家詳細(xì)介紹了PHP實(shí)現(xiàn)生成Excel文件并導(dǎo)出的方法,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)PHP有一定的幫助,需要的可以參考一下2023-01-01用PHP實(shí)現(xiàn)讀取和編寫XML DOM代碼
用PHP讀取和編寫XML DOM代碼,需要的朋友可以參考下。2010-04-04PHP獲取當(dāng)前日期所在星期(月份)的開始日期與結(jié)束日期(實(shí)現(xiàn)代碼)
本篇文章是對PHP獲取當(dāng)前日期所在星期(月份)的開始日期與結(jié)束日期的實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06