在PHP中使用未指定数量的参数填充函数


Fill up a function with unspecified number of arguments in PHP

$my_object->$setValue[1](foo, bar, x, y, z....nth);

我的问题是,在setValue内部传递的值是动态的。也就是说,它可以传递尽可能多的值。我不知道这个的正确实现,我想象它是这样的,我知道它不起作用:

$my_object->$setValue[1](
    for($param = 0; $param > $param_count; $param++){
    }
);

Please help or you could Please me help in the right direction。谢谢。

可以使用func_num_args()func_get_args()函数。例如:

<?php
function foo()
{
    $numargs = func_num_args();
    echo "Number of arguments: $numargs<br />'n";
    if ($numargs >= 2) {
        echo "Second argument is: " . func_get_arg(1) . "<br />'n";
    }
    $arg_list = func_get_args();
    for ($i = 0; $i < $numargs; $i++) {
        echo "Argument $i is: " . $arg_list[$i] . "<br />'n";
    }
}
foo(1, 2, 3);
?>

Edit:要传递未知数量的参数给函数,可以使用call_user_func_array()

call_user_func_array(array($my_object, $setValue[1]), array("one", "two", ...));