php變數的引用有哪些方法?php變數的引用機制的方法總結

來源:互聯網
上載者:User
本篇文章給大家帶來的內容是關於php變數的引用有哪些方法?php變數的引用機制的方法總結,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所協助。

1.變數的引用,php中的“&”:

$a  = "hello world";//定義一個變數,下面賦值給$b$b = $a;            //這一步實際上原理是會將變數$a複製拷貝一份,也就是記憶體中重新申請一個地址儲存變數$b

註:在php中,使用 "=" 直接賦值,其實就是拷貝一份右邊的變數給$b,會產生一份記憶體空間,結果可能是同樣的內容在記憶體中兩份。

2、使用符號“&”進行引用

$a  = "hello world";$b = &$a;

註:使用引用,php引擎不會拷貝一份變數,其實就是將指標指向了$a在記憶體中的地址,$b中就是儲存了這個指標。
所以使用引用的時候,把$b的值改變,$a也會跟著改變。

$a  = "hello world";$b = &$a;$b = "test new value";  //把b的值改掉,a的值也會跟著改變echo $a;                //輸出test new value,因為改變了b的值也會改變a的值。

經常在定義函數的時候看到像這樣的情況:

function test (&$param){    $param++;}$k = 8;test($k);echo $k; //結果$k的值被函數裡面改變了,輸出9。

註:$param前面帶有引用,所以傳入進來的參數並不會在記憶體中拷貝一份,而是直接對原來的記憶體空間進行引用。所以:如果裡對使用符號&傳入進來的變數值進行修改了,那麼也會改變原來的記憶體空間中的值。

3、銷毀變數的時候。並不會改變原來的值。

$a = 'd';$b = &$a;$b = 8;   var_dump($b,$a);   //因為是引用了,所以把b的值改掉,a的值也跟著改為8了。unset($b);         //調用unset刪除b變數,a變數不會刪除var_dump($b,$a);   //輸出null和8

註:調用unset刪除$b變數的時候,php引擎從變數符號表中發現:我要刪除的變數$b原來是引用了變數$a,這不好刪除啊,因為一刪除導致$a變數也沒了,所以就先把$a變數拷貝一份後在刪除$b變數。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.