国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

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

2024-05-05 00:00:45
字體:
來源:轉載
供稿:網友

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

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

實例代碼:

//聚合類 class ObjA {   public $num = 0;   public $objB;//包含的對象   function __construct() {     $this->objB = new ObjB();   }   //只有實現了下面方法聚合類 才能實現深復制   /*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> 

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


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 吐鲁番市| 鸡泽县| 沛县| 习水县| 铜陵市| 吴堡县| 招远市| 扎囊县| 兰西县| 巴塘县| 霍州市| 舒兰市| 明光市| 阿巴嘎旗| 乌什县| 吴桥县| 灵武市| 岐山县| 南京市| 贡山| 永顺县| 枣强县| 虹口区| 洛宁县| 宣威市| 阿鲁科尔沁旗| 蒲城县| 洛南县| 岳普湖县| 怀安县| 勃利县| 金秀| 乐都县| 连州市| 宜州市| 衡东县| 沽源县| 乌兰察布市| 陆川县| 平泉县| 大厂|