如何在php中编写一个参数数量未知的函数,例如
function echoData (parameter1, parameter2,) {
//do something
}
但是当你调用这个函数时,你可以使用:
echoData('hello', 'hello2', 'hello3', 'hello'4);
这样可以发送更多的参数,因为参数的数量是未知的。
给那些在谷歌上发现这个话题的人。
在PHP 5.6及以上版本中,您可以使用...
来指定未知数量的参数:
function sum(...$numbers) {
$acc = 0;
foreach ($numbers as $n) {
$acc += $n;
}
return $acc;
}
echo sum(1, 2, 3, 4); // 10
$numbers
是一个参数数组
func_get_args()
function echoData(){
$args = func_get_args();
}
请注意,虽然可以这样做,但如果要使用func_get_args(),则不应该在函数声明中定义任何参数—因为如果/当任何已定义的参数被省略时,会变得非常混乱
关于参数的类似函数
- func_get_arg ()
- func_get_args ()
- func_num_args ()
使用func_get_args()获取所有参数的数组,如下所示:
$args = func_get_args();
然后您可以使用该数组或对其进行迭代,以最适合您的用例。
也可以使用数组:
<?php
function example($args = array())
{
if ( isset ( $args["arg1"] ) )
echo "Arg1!";
}
example(array("arg1"=>"val", "arg2"=>"val"));