访问未定义的参数

Tyl*_*ter 1 php

有没有办法将无限量的参数传递给函数,并访问所有这些参数,而无需在标题中定义每个参数.这是一个让它更清晰的例子:

function doSomething($var1="", $var2="".........)
{
    // Do something with the arguments
}
Run Code Online (Sandbox Code Playgroud)

我不想要定义一堆参数.有没有办法只获取数组中的所有参数?即使他们没有被定义?(PHP BTW)

最终结果应如下所示:

func("hello", "ya", "hi", "blah", "test", "go");

function func()
{
   //Loop Over Arguments
}
Run Code Online (Sandbox Code Playgroud)

我已经看到一些本机PHP函数能够接受看似无限数量的参数,但用户定义的函数可以做同样的事情吗?

Pas*_*TIN 5

您可以使用func_get_args,func_get_argfunc_num_args

考虑到你已经声明了这三个变量:

$param_1 = "A";
$param_2 = "B";
$param_3 = "C";
Run Code Online (Sandbox Code Playgroud)

这是第一个例子,func_get_args用于获取一个数组中的所有参数:

my_function_1($param_1, $param_2, $param_3);

function my_function_1()
{
    $num_args = func_num_args();
    if ($num_args >= 1) {
        $args = func_get_args();
        var_dump($args);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是另一个逐个获取参数的方法,其中func_get_arg:

my_function_2($param_1, $param_2, $param_3);

function my_function_2()
{
    $num_args = func_num_args();
    if ($num_args >= 1) {
        $args = func_get_args();
        for ($i = 0 ; $i<$num_args ; $i++) {
            var_dump(func_get_arg($i));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)