我有一个参数数组,用于函数。
数组中的项目数不同。我希望能够将数组中的每个项目单独传递给函数(例如...... func(arg1, arg2, arg3, arg4);
)。反对只是传递整个数组。
请记住,我不知道数组的长度,它取决于我调用的函数。
答案 0 :(得分:0)
在PHP中你有:
为此目的。
修改强>
如果你使用PHP 5.6很好,那么你有splat运算符。从文档(link)引用示例:
<?php
function add($a, $b, $c) {
return $a + $b + $c;
}
$operators = [2, 3];
echo add(1, ...$operators);
答案 1 :(得分:0)
如果你的意思是你的函数的参数是一个数组,你可以使用foreach
来获取所有的数组元素:
function my_func($arg_array)
{
foreach($arg_array as $key=>$value)
{
......
}
....
}
但是如果你的意思是你有一个具有未知数量的参数的函数,你可以使用func_get_args
函数返回一个包含参数作为数组的数组。
function my_func()
{
foreach(func_get_args() as $key=>$value)
{
......
}
....
}
答案 2 :(得分:0)
自PHP 5.6起,您拥有Variable-length argument lists,因此您可以像这样调用您的函数:
$arr = array(1, 2, 5, "ten");
您可以将$arr
中的所有元素发送到函数中,方法如下:
myFunc(...$arr);
答案 3 :(得分:0)
使用:call_user_func_array("functionName", $arrayofArgs);
<?php
function unknown($arg1,$arg2,$arg3){
echo "arg1 = $arg1 <br>";
echo "arg1 = $arg2 <br>";
echo "arg1 = $arg3 <br>";
}
$array = [
"arg1" => "Hi",
"arg2" => "Marhaba",
"arg3" => "Hola",
"arg4" => "foo"
];
call_user_func_array("unknown", $array);
?>
你可以通过将第一个param作为[“className”,“methodName”]的数组传递来调用类中的函数
php文件: http://php.net/manual/en/function.call-user-func-array.php