我敢肯定,必須有一個辦法做到這一點:通過PHP函數傳遞一個數組
我想它,這樣如果我把這樣的功能...
callFunction("var1","var2","var3");
功能「callFunction」將轉向這些變量到一個數組即:
$array[0] = "var1";
$array[1] = "var2";
$array[2] = "var3";
我希望它無論有多少個變量調用函數時列出生成這個數組,這可能嗎?
我敢肯定,必須有一個辦法做到這一點:通過PHP函數傳遞一個數組
我想它,這樣如果我把這樣的功能...
callFunction("var1","var2","var3");
功能「callFunction」將轉向這些變量到一個數組即:
$array[0] = "var1";
$array[1] = "var2";
$array[2] = "var3";
我希望它無論有多少個變量調用函數時列出生成這個數組,這可能嗎?
您只需做到以下幾點:
function callFunction() {
$arr = func_get_args();
// Do something with all the arguments
// e.g. $arr[0], ...
}
func_get_args
將返回傳遞給函數的所有參數。你甚至不需要在函數頭中指定它們。
func_num_args
將產生傳遞給該函數的參數的數量。我不完全確定爲什麼存在這樣的事情,因爲你可以簡單地使用count(func_get_args())
,但我認爲它存在是因爲它在C中(它實際上是必要的)。
要是你再去找這種特徵在不同的語言,它通常被稱爲Variadic Function,或「可變參數」,如果你需要快速谷歌它:)
剛剛從該函數返回func_get_args()
:
function callFunction(){
return func_get_args();
}
$array = callFunction("var1","var2","var3","var4","var5");
var_dump($array);
/*array(5) {
[0]=>
string(4) "var1"
[1]=>
string(4) "var2"
[2]=>
string(4) "var3"
[3]=>
string(4) "var4"
[4]=>
string(4) "var5"
}*/
剛剛返回'$ arg_list'有什麼問題? – slugonamission
這樣調用你的函數。
callFunction(array("var1", "var2", "var3", "var4", "var5"));
並創建你的功能。
function callFunction($array)
{
//here you can acces your array. no matter how many variables are listed when calling the function.
print_r($array);
}
['func_get_args()'](http://us.php.net/func_get_args)? – DCoder
現在的問題是,是否以及如何將數組傳遞給函數,或者是否可以使用可變數量的參數調用函數? – Havelock
你爲什麼不想使用'array'? – Baba