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
)&符號指定了變數傳入進去,是引用方式傳遞。
改為:
$file_name_arr = explode(“.”,$file_name);
$suffix = array_pop($file_name_arr);
$suffix = array_pop($file_name_arr);
就可以。
實際上也只是報出一個警告。不是致命錯誤。正常結果是能夠得到。比如這裡得到檔名的字尾,是正常的。
相關文章
- Python的函式引數傳遞:傳值?引用?Python函式
- php函式引用傳遞引數的方法PHP函式
- Java的值傳遞和引用傳遞Java
- JavaScript的值傳遞和引用傳遞JavaScript
- 值傳遞和引用傳遞
- (求教)關於js函式按值、引用傳遞的問題JS函式
- PHP中物件的引用傳遞PHP物件
- 關於值傳遞和引用傳遞的解釋
- 快速搞懂值傳遞與引用傳遞
- Golang中函式傳參存在引用傳遞嗎?Golang函式
- js中 函式引數的 傳值/傳引用 問題JS函式
- Day30--值傳遞和引用傳遞
- Java - 是值傳遞還是引用傳遞Java
- php 傳值與傳引用的理解(通俗易懂)PHP
- golang工作筆記(二)值傳遞與引用傳遞Golang筆記
- 解惑4:java是值傳遞還是引用傳遞Java
- 面試官問:Go 中的引數傳遞是值傳遞還是引用傳遞?面試Go
- 如果一定要傳遞陣列的引用,PHP7 裡面咋整陣列PHP
- Java是值傳遞還是引用傳遞,又是怎麼體現的Java
- 傳遞函式函式
- C#|.net core 基礎 - 值傳遞 vs 引用傳遞C#
- Java 從陣列來看值傳遞和引用傳遞Java陣列
- html、php和js值的傳遞(使用ajax進行傳遞)HTMLPHPJS
- 函式的引數傳遞函式
- C#程式設計引用型別和值型別 以及引用傳遞和值傳遞C#程式設計型別
- PHP 物件導向 (四)類物件賦值為引用傳遞PHP物件賦值
- 這一次,徹底解決Java的值傳遞和引用傳遞Java
- Go語言引數傳遞是傳值?還是傳引用 ?Go
- Python引數傳遞,既不是傳值也不是傳引用Python
- 這一次,讓你徹底理解Java的值傳遞和引用傳遞!Java
- swift 函式傳遞Swift函式
- chan中傳遞map資料,傳遞的是引用
- [精]--這一次,讓你徹底明白Java的值傳遞和引用傳遞!Java
- go 值傳遞和地址傳遞的例子Go
- 如何計算PHP函式中傳遞的引數數量PHP函式
- python中函式的引數傳遞Python函式
- go語言引數傳遞到底是傳值還是傳引用Go
- JS的方法引數傳遞(按值傳遞)JS
- 關於String是值傳遞還是引用傳遞,talk is cheap, just show codes