理解PHP中&引用

在 PHP 中引用意味着用不同的名字訪問同一個變量內容。這並不像 C 的指針:例如你不能對他們做指針運算,他們並不是實際的內存地址。引用是符號表別名。

引用做什麼:

PHP 的引用允許用兩個變量來指向同一個內容。
如果對一個未定義的變量進行引用賦值、引用參數傳遞或引用返回,則會自動創建該變量。如果在 foreach語句中給一個具有引用的變量賦值,被引用的對象也被改變。引用做的第二件事是用引用傳遞變量。這是通過在函數內建立一個本地變量並且該變量在呼叫範圍內引用了同一個內容來實現的。

引用傳遞:

注意在函數調用時沒有引用符號——只有函數定義中有。光是函數定義就足夠使參數通過引用來正確傳遞了。以下內容可以通過引用傳遞:變量、New 語句、從函數中返回的引用。任何其它表達式都不能通過引用傳遞,結果未定義。

取消引用:

當 unset 一個引用,只是斷開了變量名和變量內容之間的綁定。這並不意味着變量內容被銷燬了。例如在foreach循環中使用引用&來改變數組或者對象的值,那麼在循環結束置換後要手動釋放,及時unset,如果想要在循環中unset某個數組或者對象的值,不能unset引用值,而是要使用數據的原值。

引用定位:

許多 PHP 的語法結構是通過引用機制實現的,例如global引用,當用global $var聲明一個變量時,實際上是建立了一個到全局變量的引用;例如$this,在一個對象的方法中,$this是調用它的對象的引用。

 

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