PHP字符串函數localeconv()的用法
740
2023-12-12
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>
如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
#免責聲明#
本站[綠夏技術導航]提供的一切軟件、教程和內容信息僅限用于學習和研究目的;不得將上述內容用于商業或者非法用途,否則,一切后果請用戶自負。本站信息來自網絡收集整理,版權爭議與本站無關。您必須在下載后的24個小時之內,從您的電腦或手機中徹底刪除上述內容。如果您喜歡該程序或內容,請支持正版,購買注冊,得到更好的正版服務。我們非常重視版權問題,如有侵權請郵件[admin@lxwl520.com]與我們聯系進行刪除處理。敬請諒解!