主頁 > 知識庫 > PHP對象的淺復制與深復制的實例詳解

PHP對象的淺復制與深復制的實例詳解

熱門標簽:清遠陽山400電話號碼如何申請 百度地圖標注飯店位置怎么 深圳400電話辦理那家好 襄陽房產(chǎn)電銷機器人招商 安徽移動外呼系統(tǒng) 施工地圖標注怎么做 怎么在高德地圖標注行走軌跡 個性化地圖標注在線 百度地圖標注名編輯

PHP對象的淺復制與深復制的實例詳解

最近在看原型模式時注意到這個問題~~PHP中對象 '=' 與‘clone'的區(qū)別

實例代碼:

//聚合類 
class ObjA { 
  public $num = 0; 
  public $objB;//包含的對象 
  function __construct() { 
    $this->objB = new ObjB(); 
  } 
  //只有實現(xiàn)了下面方法聚合類 才能實現(xiàn)深復制 
  /*function __clone() { 
    $this->objB = clone $this->objB; 
  }*/ 
} 
 
class ObjB { 
  public $num2 = 0; 
} 
 
//原型對象 
$objA = new ObjA(); 
 
//復制對象(‘='復制引用) 
$objA2 = $objA; 
$objA2->num = 2; 
//隨著$objA2->num的變化 $objA->num也變化了 
print_r($objA->num.'br/>');//結果為2 
print_r($objA2->num.'br/>');//結果為2 
 
//復制對象(‘clone'關鍵字克?。?
$objA3 = clone $objA; 
$objA3->num = 4; 
//隨著$objA3->num的變化 $objA->num沒有變化 
print_r($objA->num.'br/>');//結果為2 
print_r($objA3->num.'br/>');//結果為4 
//但是clone的對象(是聚合類)中包含其他對象時所包含的對象(objB)復制的是引用 
$objA3->objB->num2 = 7; 
print_r($objA3->objB->num2.'br/>');//結果是7 
print_r($objA->objB->num2.'br/>');//結果是7/pre> 

如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

您可能感興趣的文章:
  • php面向對象全攻略 (三)特殊的引用“$this”的使用
  • PHP對象遞歸引用造成內(nèi)存泄漏分析
  • PHP對象相互引用的內(nèi)存溢出實例分析
  • php中引用&的用法分析【變量引用,函數(shù)引用,對象引用】
  • php5對象復制、clone、淺復制與深復制實例詳解
  • PHP動態(tài)地創(chuàng)建屬性和方法, 對象的復制, 對象的比較,加載指定的文件,自動加載類文件,命名空間
  • PHP 5.0對象模型深度探索之對象復制
  • php面向對象全攻略 (十一)__toString()用法 克隆對象 __call處理調(diào)用錯誤
  • php實現(xiàn)對象克隆的方法
  • PHP對象克隆clone用法示例
  • PHP面向對象程序設計高級特性詳解(接口,繼承,抽象類,析構,克隆等)
  • php中對象引用和復制實例分析

標簽:臨夏 黑河 中衛(wèi) 阜陽 南昌 欽州 駐馬店 延邊

巨人網(wǎng)絡通訊聲明:本文標題《PHP對象的淺復制與深復制的實例詳解》,本文關鍵詞  PHP,對象,的,淺,復制,與,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP對象的淺復制與深復制的實例詳解》相關的同類信息!
  • 本頁收集關于PHP對象的淺復制與深復制的實例詳解的相關信息資訊供網(wǎng)民參考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推薦文章