PHP 的引用允許你用兩個變數來指向同一個內容。意思是,當你這樣做時:
這意味著 $a 和 $b 指向了同一個變數。註: $a 和 $b 在這裡是完全相同的,這並不是 $a 指向了 $b 或者相反,而是 $a 和 $b 指向了同一個地方。
同樣的語法可以用在函式中,它傳回引用,以及用在 new 運算符中(PHP 4.0.4 以及以後版本):
註: 不用 & 運算符導致對象產生了一個拷貝。如果你在類中用 $this,它將作用於該類當前的實例。沒有用 & 的設值將拷貝這個實例(例如對象)並且 $this 將作用於這個拷貝上,這並不總是想要的結果。由於性能和內存消耗的問題,通常你只想工作在一個實例上面。
儘管你可以用 @ 運算符來關閉建構函式中的任何錯誤訊息,例如用 @new,但用 &new 語句時這不起效果。這是 Zend 引擎的一個限制並且會導致一個解析錯誤。
引用做的第二件事是用引用傳遞變數。這是通過在函式內建立一個本地變數並且該變數在呼叫範圍內引用了同一個內容來實現的。例如:
將使 $a 變成 6。這是因為在 foo 函式中變數 $var 指向了和 $a 指向的同一個內容。更多詳細解釋見引用傳遞。引用做的第三件事是引用傳回。