PHP引用的使用


引用在程式中使用比較多,為了公用同一個內存,而不需要另外進行複製,XXX環境下的引用使用時,需要注意下面的情況;
在對函數的輸入參數中使用引用時,不能在呼叫的時候在輸入參數前加&來引用,而直接使用該變數即可,同時必須在函數定義的時候說明輸入參數來自引用,例如下面的程式碼:

$a = 1;
function ab(&$var){
    $var ++;
    return $var;
}
$b = ab($a) // 注意,此处不能使用 $b = ab(&$a)的方式;
echo $b.”/n”;
echo $a.”/n”;

此時$a和$b都是2;

XXX環境下對引用的特殊要求源自php.ini檔案裡面的allow_call_time_pass_reference 項設置, 對外公開的版本是 On ,這樣就可以支援&直接加到呼叫函數時變數前面進行引用,但是這一方法遭到抗議,並可能在將來版本的PHP/Zend裡不再支持。受到鼓勵的指定哪些參數是按引用傳遞的方法是在函數宣告裡。你被鼓勵嘗試關閉這一選項(使用 off,XXX的所有運行環境下都是off)並確認你的腳本仍能正常工作,以確保在將來版本的語言裡它們仍然可以工作。