PHP對象克隆clone用法示例
本文實例講述了PHP對象克隆clone用法。分享給大家供大家參考,具體如下:
淺克?。?/strong>只是克隆對象中的非對象非資源數(shù)據(jù),即對象中屬性存儲的是對象類型,則會出現(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);
運行結(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
深克隆:一個對象的所有屬性數(shù)據(jù)都徹底的復制,需要使用魔術方法__clone(),并在里面實現(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);
運行結(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
更多關于PHP相關內(nèi)容感興趣的讀者可查看本站專題:《php面向?qū)ο蟪绦蛟O計入門教程》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結(jié)》、《PHP網(wǎng)絡編程技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
- php面向?qū)ο笕ヂ?(三)特殊的引用“$this”的使用
- PHP對象遞歸引用造成內(nèi)存泄漏分析
- PHP對象相互引用的內(nèi)存溢出實例分析
- php中引用&的用法分析【變量引用,函數(shù)引用,對象引用】
- php5對象復制、clone、淺復制與深復制實例詳解
- PHP對象的淺復制與深復制的實例詳解
- PHP動態(tài)地創(chuàng)建屬性和方法, 對象的復制, 對象的比較,加載指定的文件,自動加載類文件,命名空間
- PHP 5.0對象模型深度探索之對象復制
- php面向?qū)ο笕ヂ?(十一)__toString()用法 克隆對象 __call處理調(diào)用錯誤
- php實現(xiàn)對象克隆的方法
- PHP面向?qū)ο蟪绦蛟O計高級特性詳解(接口,繼承,抽象類,析構,克隆等)
- php中對象引用和復制實例分析
相關文章
PHP獲取數(shù)組中重復最多的元素的實現(xiàn)方法
這篇文章主要介紹了PHP獲取數(shù)組中重復最多的元素的實現(xiàn)方法,通過一個自定義函數(shù)遍歷數(shù)組實現(xiàn)這一功能,是非常使用的技巧,需要的朋友可以參考下2014-11-11
PHP7創(chuàng)建COOKIE和銷毀COOKIE的實例方法
在本篇文章里小編給大家整理的是關于PHP7創(chuàng)建COOKIE和銷毀COOKIE的實例方法,有需要的朋友們可以參考下。2020-02-02
Can''t create/write to file ''C:\WINDOWS\TEMP\...MYSQL報錯解決方法
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL報錯解決方法,參考下面的方法即可。2011-06-06
PHP獲取當前日期所在星期(月份)的開始日期與結(jié)束日期(實現(xiàn)代碼)
本篇文章是對PHP獲取當前日期所在星期(月份)的開始日期與結(jié)束日期的實現(xiàn)代碼進行了詳細的分析介紹,需要的朋友參考下2013-06-06

