這篇文章主要介紹了php函數傳值的引用傳遞注意事項,涉及php設定檔的設定及陣列函數的使用技巧,需要的朋友可以參考下
本文實例講述了php函數傳值的引用傳遞注意事項。分享給大家參考,具體如下:
Strict standards: Only variables should be passed by reference
網上查到資料有這麼一句話:
在php5.3以上版本會出這個問題,應該也跟php的配置有關,只要把這一句拆成兩句就沒問題了。 因為array_walk的參數是引用傳遞的,5.3以上預設只能傳遞具體的變量,而不能透過函數傳回值。 當然你也可以修改php.ini 裡的 error_reporting = E_ALL | E_STRICT,但這終究不符合規範。
$suffix = array_pop(explode(".",$file_name));
為什麼高版的會這樣子限制呢?
我去看手冊中的函數原型:
mixed array_pop ( array &$array ) bool array_walk ( array &$array , callable $funcname [, mixed $userdata = NULL ] )
&符號指定了變數傳入進去,是引用方式傳遞。
改為:
$file_name_arr = explode(".",$file_name); $suffix = array_pop($file_name_arr);
就可以。
其實也只是報出一個警告。不是致命錯誤。正常結果是能夠得到。例如這裡得到檔名的後綴,是正常的。
相關建議:
#########
以上是php函數傳值的參考傳遞注意事項分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!