數據類型 - 引用

引用是一種指向其他數據類型的結構,類似C語言中指針的概念。當修改引用類型的變量時候,其修改將反映到實際引用的變量上。辣麼當我們使用$a = &$b這樣一個引用時候發生了什麼呢?來我們來看看流程吧

  1. $a = &$b ,首先爲$a 變量分配一個Zend_reference結構,內嵌了一個zval ,這時候zval.value指向原來zval的value
  2. 將原來$b 的類型改爲IS_REFERENCE引用類型,原來zval的value指向新建的zend_reference結構

    

struct _zend_reference {
   zend_refcounted_h gc;
   zval              val;
};
<?php
   $b = "Hello world";
   $a = &$b;  

 

 

來舉個栗子:

 

注意:使用引用,只有通過&產生,無法通過賦值來傳遞,例如:


<?php
    $b = "Hello World";
    $a = &$b;
    $c = $a; //此時$c不是一個引用


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章