1. php5.6以上版本可以使用 ... 方式
<?php
function test() {
echo '参数个数为:' . func_num_args() . '<br>'
. '分别为:' . implode(', ', func_get_args());
}
$args = range(1, 5);
test(...$args);
运行结果:
2. 使用 call_user_func_array() 函数
<?php
class A {
function test1() {
echo __FUNCTION__ . '参数个数为:' . func_num_args() . '<br>'
. '分别为:' . implode(', ', func_get_args());
}
}
function test2() {
echo __FUNCTION__ . '参数个数为:' . func_num_args() . '<br>'
. '分别为:' . implode(', ', func_get_args());
}
$args = range(1, 5);
call_user_func_array([new A, 'test1'], $args);
echo '<br><br>';
call_user_func_array('test2', $args);
运行结果:
3. 使用 eval() 函数
<?php
function test() {
echo '参数个数为:' . func_num_args() . '<br>'
. '分别为:' . implode(', ', func_get_args());
}
$args = range(1, 5);
eval('test(' . implode(',', $args) . ');');
运行结果: