php實(shí)現(xiàn)對(duì)象傳值方式的具體案例-創(chuàng)新互聯(lián)

今天就跟大家聊聊有關(guān)php實(shí)現(xiàn)對(duì)象傳值方式的具體案例,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

成都創(chuàng)新互聯(lián)提供高防物理服務(wù)器租用、云服務(wù)器、香港服務(wù)器、內(nèi)蒙古服務(wù)器托管

變量賦值與對(duì)象賦值對(duì)比

 <?php 
     // 聲明一個(gè)變量并賦值 
     $a = 1; 
     // 將數(shù)據(jù)類型的值 賦值 給一個(gè)變量 
     $b = $a; 
  
     // 修改$a的值 
     $a = 2; 
     // $a和$b是兩個(gè)獨(dú)立的內(nèi)存空間修改其中一個(gè)另一個(gè)不受影響
     echo $b; // 1 
 
     class Person
    {
         public $name;
         public $age;
    }
     // 將對(duì)象類型的數(shù)據(jù) 賦值 給一個(gè)變量
     $p = new Person;
     // 通過對(duì)屬性修改值,來確定面向?qū)ο笾?對(duì)象的傳值方式
     $p->name = 'jesse';
     // 若是成功修改值,則是引用傳值 
     echo $p->name; // jesse

 ?>

案例解釋:

在這里通過變量的賦值方式 與 對(duì)象的賦值方式方式相對(duì)比,代碼第5行中的賦值方式為“拷貝賦值”,故在修改其源值($a的值)的情況下,$b的值不受影響。$a與$b的內(nèi)存關(guān)系圖如下:

php實(shí)現(xiàn)對(duì)象傳值方式的具體案例

而代碼20行將數(shù)據(jù)類型賦值給$p變量,通過$p修改對(duì)象內(nèi)部的值成功,對(duì)比變量的傳值方式,證明這是引用傳值,內(nèi)存關(guān)系圖如下:

php實(shí)現(xiàn)對(duì)象傳值方式的具體案例

而代碼20行將數(shù)據(jù)類型賦值給$p變量,通過$p修改對(duì)象內(nèi)部的值成功,對(duì)比變量的傳值方式,證明這是引用傳值,內(nèi)存關(guān)系圖如下:

<?php 
    class Person
    {
        public $name;
        public $age;
        // 將對(duì)象類型的數(shù)據(jù) 賦值 給一個(gè)變量
         $p = new Person;
         // 通過對(duì)屬性修改值,來確定面向?qū)ο笾?對(duì)象的傳值方式
        $p->name = 'jesse';
        // 將對(duì)象賦予另一變量
        $m = $p;
        // 另一變量修改屬性值
        $m->name = 'Marry';
         // 輸出源變量 賦值變量訪問內(nèi)部屬性的結(jié)果
        echo $p->name, $m->name;
    }
?>

第12行代碼為本篇文章的最“點(diǎn)睛”的代碼,等號(hào)右邊為是一個(gè)對(duì)象,左邊是一個(gè)變量,那么犀利的問題來了,$m是將對(duì)象拷貝一份?還是按引用傳遞呢?該代碼內(nèi)存關(guān)系如下:

php實(shí)現(xiàn)對(duì)象傳值方式的具體案例

所以,最后兩個(gè)對(duì)象的屬性值均被修改為Marry!!!

那按引用傳值會(huì)是怎么個(gè)情況?

 <?php 
     class Person
     {
         public $name; 
         public $age; 
     } 
     // 將對(duì)象類型的數(shù)據(jù) 賦值 給一個(gè)變量 
     $p = new Person; 
     // 通過對(duì)屬性修改值,來確定面向?qū)ο笾?對(duì)象的傳值方式
     $p->name = 'jesse';
     // 將對(duì)象賦予另一變量
     $m = &$p;
     // 另一變量修改屬性值
     $m->name = 'Marry';
     // 輸出源變量 賦值變量訪問內(nèi)部屬性的結(jié)果
     echo $p->name, $m->name;
 ?>

php實(shí)現(xiàn)對(duì)象傳值方式的具體案例

看完上述內(nèi)容,你們對(duì)php實(shí)現(xiàn)對(duì)象傳值方式的具體案例有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

當(dāng)前標(biāo)題:php實(shí)現(xiàn)對(duì)象傳值方式的具體案例-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://muchs.cn/article36/dpessg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、服務(wù)器托管網(wǎng)站收錄、品牌網(wǎng)站制作虛擬主機(jī)、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管