我确定必须有办法做到这一点:
我想要这样,如果我调用这样的函数......
callFunction("var1","var2","var3");
函数'callFunction'将这些变量转换为数组,即:
$array[0] = "var1";
$array[1] = "var2";
$array[2] = "var3";
我想要它生成这个数组,无论调用函数时列出了多少变量,这可能吗?
答案 0 :(得分:8)
您可以执行以下操作:
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或" varargs"如果你需要快速谷歌:)
答案 1 :(得分:0)
只需从该函数返回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"
}*/
答案 2 :(得分:0)
像这样调用你的函数。
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);
}