php的引述返回和取值 (Dereference)

來源:互聯網
上載者:User
php的引用返回和取值 (Dereference)

一、引用返回

引用返回用在當想用函數找到引用應該被綁定在哪一個變數上面時。不要用返回引用來增加效能,引擎足夠聰明來自己進行最佳化。僅在有合理的技術原因時才返回引用!要返回引用,使用此文法:

value;    }}$obj = new foo;$myValue = &$obj->getValue(); // $myValue is a reference to $obj->value, which is 42.$obj->value = 2;echo $myValue;                // prints the new value of $obj->value, i.e. 2.?>

以上是PHP Manual給出的解釋並表示太好理解

";    return $b;    }   $a = test();  //輸出 $b 的值為:1   $a = 5;   $a = test();  //輸出 $b 的值為:2     $a = &test();  //輸出 $b 的值為:3  **注意**   $a = 5;    //$b的值變為了5   $a = test();  //輸出 $b 的值為:6  **注意**   ?>


$a = test() 雖然說函數定義的時候,是引用返回方式,但是如果採用這種普通形勢調用函數,那它的作用也就和普通的函數一樣,所以看結果就是1、2

$a = &test() 這種調用方式就是引用返回,就類似於 $a = &$b ,然後第二句又把$a = 5,那就是等於將變數$b = 5,最後一句得到的6也就很容易理解了!

和參數傳遞不同,這裡必須在兩個地方都用 & 符號——指出返回的是一個引用,而不是通常的一個拷貝,同樣也指出 $a 是作為引用的綁定,而不是通常的賦值。

Note: 如果試圖這樣從函數返回引用:return ($this->value);,這將不會起作用,因為在試圖返回一個運算式的結果而不是一個引用的變數。只能從函數返回引用變數——沒別的方法。如果代碼試圖返回一個動態運算式或 new 運算子的結果,自 PHP 4.4.0 和 PHP 5.1.0 起會發出一條 E_NOTICE 錯誤。

二、取值 (Dereference)

當 unset 一個引用,只是斷開了變數名和變數內容之間的綁定。這並不意味著變數內容被銷毀了。例如:


不會 unset $b,只是 $a。

再拿這個和 Unix 的 unlink 調用來類比一下可能有助於理解。


  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.