日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
PHPclone關(guān)鍵字(克隆對(duì)象)
php 中的對(duì)象模型是通過(guò)引用來(lái)調(diào)用對(duì)象的,但有時(shí)需要建立一個(gè)對(duì)象的副本,在改變?cè)袑?duì)象時(shí)不希望影響到對(duì)象副本。如果使用
new關(guān)鍵字重新創(chuàng)建對(duì)象,再為屬性賦上相同的值,這樣做會(huì)比較煩瑣而且也容易出錯(cuò)。在 PHP 中可以根據(jù)現(xiàn)有的對(duì)象克隆出一個(gè)完全一樣的對(duì)象,克隆以后,原本對(duì)象和副本對(duì)象是完全獨(dú)立互不干擾的。

創(chuàng)新互聯(lián)致力于成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè),成都網(wǎng)站設(shè)計(jì),集團(tuán)網(wǎng)站建設(shè)等服務(wù)標(biāo)準(zhǔn)化,推過(guò)標(biāo)準(zhǔn)化降低中小企業(yè)的建站的成本,并持續(xù)提升建站的定制化服務(wù)水平進(jìn)行質(zhì)量交付,讓企業(yè)網(wǎng)站從市場(chǎng)競(jìng)爭(zhēng)中脫穎而出。 選擇創(chuàng)新互聯(lián),就選擇了安全、穩(wěn)定、美觀的網(wǎng)站建設(shè)服務(wù)!

在 PHP 中可以使用 clone 關(guān)鍵字克隆對(duì)象,語(yǔ)法格式如下:

克隆對(duì)象名稱 = clone 原對(duì)象名稱;

因?yàn)?clone 的方式實(shí)際上是對(duì)整個(gè)對(duì)象的內(nèi)存區(qū)域進(jìn)行了一次復(fù)制并用新的對(duì)象變量指向新的內(nèi)存,因此賦值后的對(duì)象和原對(duì)象之間是相互獨(dú)立的。

對(duì)象克隆成功后,它們中的成員方法、屬性以及值是完全相同的。如果要對(duì)克隆后副本的成員屬性重新賦值,可以使用《PHP魔術(shù)方法》中介紹的 __clone() 方法。

【示例】下面通過(guò)一個(gè)簡(jiǎn)單的示例來(lái)演示一下 clone 關(guān)鍵字的使用。

 name = $name;
            $this -> url  = $url;
        }
        public function output(){
            echo $this -> name.','.$this -> url.'
'; } } $obj = new Website('C語(yǔ)言中文網(wǎng)', 'http://c.biancheng.net/php/'); $obj2 = clone $obj; $obj -> output(); $obj2 -> output(); echo '
';
    var_dump($obj);
    var_dump($obj2);
?>

運(yùn)行結(jié)果如下:

C語(yǔ)言中文網(wǎng),http://c.biancheng.net/php/
C語(yǔ)言中文網(wǎng),http://c.biancheng.net/php/
object(Website)#1 (2) {
  ["name"]=>
  string(16) "C語(yǔ)言中文網(wǎng)"
  ["url"]=>
  string(27) "http://c.biancheng.net/php/"
}
object(Website)#2 (2) {
  ["name"]=>
  string(16) "C語(yǔ)言中文網(wǎng)"
  ["url"]=>
  string(27) "http://c.biancheng.net/php/"
}

注意:如果使用 = 將一個(gè)對(duì)象賦值給一個(gè)變量,那么這時(shí)得到的將是一個(gè)對(duì)象的引用,通過(guò)這個(gè)變量更改屬性的值將會(huì)影響原來(lái)的對(duì)象。

__clone() 魔術(shù)方法

__clone() 方法不能夠直接被調(diào)用,只有當(dāng)通過(guò) clone 關(guān)鍵字克隆一個(gè)對(duì)象時(shí)才可以使用該對(duì)象調(diào)用 __clone() 方法。當(dāng)創(chuàng)建對(duì)象的副本時(shí),PHP 會(huì)檢查 __clone() 方法是否存在。如果不存在,那么它就會(huì)調(diào)用默認(rèn)的 __clone() 方法,復(fù)制對(duì)象的所有屬性。如果 __clone() 方法已經(jīng)定義過(guò),那么 __clone() 方法就會(huì)負(fù)責(zé)設(shè)置新對(duì)象的屬性。所以在 __clone() 方法中,只需要覆蓋那些需要更改的屬性就可以了。

__clone() 方法不需要任何參數(shù),下面通過(guò)一個(gè)示例來(lái)演示一下:

 name = $name;
            $this -> url  = $url;
        }
        public function output(){
            echo $this -> name.','.$this -> url.'
'; } public function __clone(){ $this -> name = 'PHP教程'; $this -> url = 'http://c.biancheng.net/'; } } $obj = new Website('C語(yǔ)言中文網(wǎng)', 'http://c.biancheng.net/php/'); $obj2 = clone $obj; $obj -> output(); $obj2 -> output(); ?>

運(yùn)行結(jié)果如下:

C語(yǔ)言中文網(wǎng),http://c.biancheng.net/php/
PHP教程,http://c.biancheng.net/

提示:如果在類中設(shè)置一個(gè)空的,訪問(wèn)權(quán)限為 private(私有的)的 __clone() 方法的話,可以起到禁止克隆的作用。


網(wǎng)頁(yè)標(biāo)題:PHPclone關(guān)鍵字(克隆對(duì)象)
URL鏈接:http://www.dlmjj.cn/article/djiiehh.html