在PHP中你將如何創建一個可以採取的參數無限數量的函數:myFunc($p1, $p2, $p3, $p4, $p5...);
PHP函數的無限參數?
我的下一個問題是:你將如何將它們傳遞到另一個函數類似
function myFunc($params){
anotherFunc($params);
}
但anotherFunc
會接收它們,就好像它是使用anotherFunc($p1, $p2, $p3, $p4, $p5...)
在PHP中你將如何創建一個可以採取的參數無限數量的函數:myFunc($p1, $p2, $p3, $p4, $p5...);
PHP函數的無限參數?
我的下一個問題是:你將如何將它們傳遞到另一個函數類似
function myFunc($params){
anotherFunc($params);
}
但anotherFunc
會接收它們,就好像它是使用anotherFunc($p1, $p2, $p3, $p4, $p5...)
call_user_func_array('anotherFunc', func_get_args());
func_get_args
返回包含傳遞到t所有參數數組稱爲他的功能被稱爲,並且call_user_func_array
調用給定的函數,並傳遞給它一個參數數組。
+1 func_get_args存在於您需要傳遞任意數量參數的情況。 – Endophage 2011-02-15 21:03:25
查看關於PHP的variable-length argument lists的文檔。
你問題的第二部分是指variable functions:
...如果一個變量名後有圓括號,PHP將尋找與任何的變量計算 同名函數,並會嘗試執行它。
是否有一個原因,你不能使用1函數參數並將所有信息作爲數組傳遞?
以前,你應該使用func_get_args()
,但在一個新的PHP 5.6(currently in beta),你可以使用... operator
而不是使用的。
因此,例如,你可以寫:
function myFunc(...$el){
var_dump($el);
}
和$el
將有所有你會通過的元素。
http://php.net/manual/en/function.func-get-args.php最可能是你想要的。定義沒有參數的函數,並使用它來獲得在運行時傳遞的內容。 – morphles 2011-02-15 20:57:37
[PHP的函數可以接受無限數量的參數嗎?]的可能的重複?(http://stackoverflow.com/questions/3078454/can-a-php-function-accept-an-unlimited-number-of-parameters) – JYelton 2011-02-15 21:04:57