《PHP實(shí)戰(zhàn):PHP對(duì)象克隆clone用法示例》要點(diǎn):
本文介紹了PHP實(shí)戰(zhàn):PHP對(duì)象克隆clone用法示例,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
PHP編程本文實(shí)例講述了PHP對(duì)象克隆clone用法.分享給大家供大家參考,具體如下:
PHP編程淺克隆:只是克隆對(duì)象中的非對(duì)象非資源數(shù)據(jù),即對(duì)象中屬性存儲(chǔ)的是對(duì)象類型,則會(huì)出現(xiàn)克隆不完全
PHP編程
<?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);
PHP編程運(yùn)行結(jié)果如下:
PHP編程
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
PHP編程深克隆:一個(gè)對(duì)象的所有屬性數(shù)據(jù)都徹底的復(fù)制,需要使用魔術(shù)方法__clone(),并在里面實(shí)現(xiàn)深度克隆
PHP編程
<?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);
PHP編程運(yùn)行結(jié)果如下:
PHP編程
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編程更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP基本語(yǔ)法入門教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見數(shù)據(jù)庫(kù)操作技巧匯總》
PHP編程希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助.
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/3183.html