PHP為什麼用參照

2020-07-16 10:06:50

PHP為什麼用參照

什麼是參照?

在 PHP 中參照意味著用不同的名字存取同一個變數內容。這並不像 C 的指標,替代的是,參照是符號表別名。注意在 PHP 中,變數名和變數內容是不一樣的,因此同樣的內容可以有不同的名字。最接近的比喻是 Unix 的檔名和檔案本身——變數名是目錄條目,而變數內容則是檔案本身。參照可以被看作是 Unix 檔案系統中的 hardlink。

1.變數的參照

<?
    a="ABC";a="ABC";b =&a;echoa;echoa;//這裡輸出:ABC
    echo b;//這裡輸出:ABCb;//這裡輸出:ABCb="EFG";
    echo a;//這裡a;//這裡a的值變為EFG 所以輸出EFG
    echo $b;//這裡輸出EFG
?>

2.函數的參照傳遞

<?php
    function test(&a)$a=$a+100;a)$a=$a+100;b=1;
    echo b;//輸出1test(b;//輸出1test(b);   //這裡b傳遞給函數的其實是b傳遞給函數的其實是b的變數內容所處的記憶體地址,通過在函數裡改變a的值 就可以改變a的值 就可以改變b的值了
    echo "<br>";
    echo $b;//輸出101
?>

3.函數的參照返回

<?php
function &test()
{
    static b=0;//申明一個靜態變數b=0;//申明一個靜態變數b=b+1;echob+1;echob;
    return b; }b; }a=test();//這條語句會輸出 b的值 為1b的值 為1a=5;
a=test();//這條語句會輸出a=test();//這條語句會輸出b的值 為2

a=&test();//這條語句會輸出a=&test();//這條語句會輸出b的值 為3
a=5;a=5;a=test();//這條語句會輸出 $b的值 為6
?>

4.物件的參照

<?php
    class a{
        var abc="ABC";     }abc="ABC";     }b=new a;
    c=c=b;
    echo b?>abc;//這裡輸出ABCechob?>abc;//這裡輸出ABCechoc->abc;//這裡輸出ABC
    b?>abc="DEF";echob?>abc="DEF";echoc->abc;//這裡輸出DEF
?>

5.參照的作用

如果程式比較大,參照同一個物件的變數比較多,並且希望用完該物件後手工清除它,建議用 "&" 方式,然後用$var=null的方式清除. 其它時候使用php5的預設方式. 另外, php5中對於大陣列的傳遞,建議用 "&" 方式, 能夠節省記憶體空間使用。

以上就是PHP為什麼用參照的詳細內容,更多請關注TW511.COM其它相關文章!