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

时间:2014-07-08 16:09:24

标签: php arrays dynamic

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

我的问题是,在setValue中传递的值是动态的。意思是,它可以传递尽可能多的值。我不知道这个的正确实现,我想像这样,我知道它不起作用:

$my_object->$setValue[1](

    for($param = 0; $param > $param_count; $param++){

    }
);

请帮忙或者请你帮我指点正确的方向。感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用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);
?>

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

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