(PHP學(xué)習(xí)筆記)我對(duì)PHP變量引用、對(duì)象引用的理解

變量引用        

創(chuàng)新互聯(lián)專(zhuān)注于賽罕企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,商城開(kāi)發(fā)。賽罕網(wǎng)站建設(shè)公司,為賽罕等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站策劃,專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)

        我們可以知道在PHP中,變量以 $ 符號(hào)開(kāi)頭,其后是變量的名稱(chēng)。變量可以對(duì)一個(gè)內(nèi)容進(jìn)行引用,PHP 的引用允許你用兩個(gè)變量來(lái)指向同一個(gè)內(nèi)容 。

        示例代碼如下:

<?php
$a = 1;          
$b = $a;       
echo '$a ='.$a.'; '.'$b = '.$b."\n".
$b = 2;
echo '$a ='.$a.'; '.'$b = '.$b."\n".

        輸出結(jié)果:

$a = 1;  $b = 1;
$a = 1;  $b = 2;

        $a將值賦給了$b,拷貝一份右邊的變量給b,會(huì)生成一份內(nèi)存空間,結(jié)果可能是同樣的內(nèi)容在內(nèi)存中兩份。此時(shí)變量a與變量b同時(shí)指向同一個(gè)內(nèi)容“1”,所以輸出結(jié)果均為“1”。當(dāng)“$b = 2”語(yǔ)句執(zhí)行時(shí),將變量b改成指向了內(nèi)容“2”,原變量a并無(wú)影響,只是變量b的指向發(fā)生了改變,所以輸出結(jié)果變量a無(wú)變化,變量b為“2”。

         下面來(lái)看另一種情況,示例代碼如下:

<?php
$c = 1;
$d = &$c;
echo '$c ='.$c.'; '.'$d = '.$d."\n".
$d = 2;
echo '$c ='.$c.'; '.'$d = '.$d."\n".

        輸出結(jié)果:

$c = 1;  $b = 1;
$c = 2;  $b = 2;

    $c將值賦給了$d的時(shí)候,加上了“&”符號(hào),符號(hào)"&"表示引用。使用引用,php引擎不會(huì)拷貝一份變量,其實(shí)就是將指針指向了$a在內(nèi)存中的地址,$b中就是保存了這個(gè)指針。對(duì)它們中的任意一個(gè)進(jìn)行修改都會(huì)影響到其他變量,而刪除其中的一個(gè)變量,其他都會(huì)被作用到。

對(duì)象引用

        在說(shuō)明對(duì)象的引用的時(shí)候,先插入一個(gè)概念(析構(gòu)函數(shù)):析構(gòu)函數(shù)會(huì)在到某個(gè)對(duì)象的所有引用都被刪除或者當(dāng)對(duì)象被顯式銷(xiāo)毀時(shí)執(zhí)行,釋放對(duì)象所占用的內(nèi)存。下面來(lái)看看示例代碼:

    情況1:

<?php
class A{
    $name = "Jam";
} 
$b = new A(); 
$c = $b; 
echo $b->name;
echo $c->name;
$b->name = "Bob"; 
echo $c->name;
$b = null ;
$c = null ;    //此時(shí)調(diào)用析構(gòu)函數(shù)
?>

    輸出結(jié)果:

Jam      Jam     Bob

     情況2:

<?php
class A{
    $name = "Jam";
} 
$b = new A(); 
$c = &$b; 
echo $b->name;
echo $c->name;
$b->name = "Bob"; 
echo $c->name;
$b = null ;    //此時(shí)調(diào)用析構(gòu)函數(shù)
?>

    輸出結(jié)果:

Jam      Jam     Bob

        從情況1可以看出,$b 和 $c都可以調(diào)用函數(shù)A中的屬性,它們當(dāng)中某一方都可以對(duì)屬性?xún)?nèi)容進(jìn)行更改,在$b和$c都為空的時(shí)候,即沒(méi)有變量在引用對(duì)象了,此時(shí)會(huì)調(diào)用析構(gòu)函數(shù)。在情況2中,在變量賦值時(shí)加入了&符號(hào),意為復(fù)制出一個(gè)$c等同與$b,兩者為相等的關(guān)系。當(dāng)其中一方為空時(shí),另一方也會(huì)為空,此時(shí)調(diào)用析構(gòu)函數(shù)。



        

分享標(biāo)題:(PHP學(xué)習(xí)筆記)我對(duì)PHP變量引用、對(duì)象引用的理解
標(biāo)題URL:http://muchs.cn/article20/gesico.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開(kāi)發(fā)、建站公司、動(dòng)態(tài)網(wǎng)站、自適應(yīng)網(wǎng)站、網(wǎng)站排名微信小程序

廣告

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

h5響應(yīng)式網(wǎng)站建設(shè)