從php手冊中能夠找到:
1)手冊中建議區分開發和產品兩種環境下的配置,以及默認配置
; allow_call_time_pass_reference
; Default Value: On 默認開啓
; Development Value: Off 開發環境:關閉
; Production Value: Off 產品環境:關閉
2) 實際中配置狀況
allow_call_time_pass_reference = off 關閉
3)參數解釋
是否啓用在函數調用時強制參數被按照引用傳遞。此方法已不被同意並在 PHP/Zend 將來的版本中極可能再也不支持。鼓勵使用的方法是在函數定義中指定哪些參數應該用引用傳遞。鼓勵你們嘗試關閉此選項並確保腳本可以正常運行,以確保該腳本也能在將來的版本中運行(每次使用此特性都會收到一條警告,參數會被按值傳遞而不是按照引用傳遞)。
4)建議:
在函數調用時經過引用傳遞參數是不推薦的,由於它影響到了代碼的整潔。若是函數的參數沒有聲明做爲引用傳遞,函數能夠經過未寫入文檔的方法修改其參數。要避免其反作用,最好僅在函數聲明時指定那個參數須要經過引用傳遞。php
當allow_call_time_pass_reference=Off時函數
<?php function abc($a,$b){ echo "$a/n"; echo "$b/n"; $b = 'cde'; } $a = 'abc'; $b = "bcd"; //很差的用法,會引起一個php warnning abc($a ,&$b); echo "$b/n"; ?>
要想經過引用來傳遞參數$b,程序可改成:code
<?php function abc($a,& $b){ echo "$a/n"; echo "$b/n"; $b = 'cde'; } $a = 'abc'; $b = "bcd"; //正確的用法 abc($a ,$b); echo "$b/n"; //output is: //abc //bcd //cde ?>