代码之家  ›  专栏  ›  技术社区  ›  Tyler Carter

访问未定义的参数

php
  •  1
  • Tyler Carter  · 技术社区  · 16 年前

    function doSomething($var1="", $var2="".........)
    {
        // Do something with the arguments
    }
    

    func("hello", "ya", "hi", "blah", "test", "go");
    
    function func()
    {
       //Loop Over Arguments
    }
    

    我见过一些原生PHP函数能够接受看似无限数量的参数,但用户定义的函数也能这样做吗?

    5 回复  |  直到 16 年前
        1
  •  5
  •   Pascal MARTIN    16 年前

    您可以使用 func_get_args , func_get_arg func_num_args

    $param_1 = "A";
    $param_2 = "B";
    $param_3 = "C";
    

    要获取一个数组中的所有参数:

    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);
        }
    }
    

    这是另一个逐一获取参数的方法 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));
            }
        }
    }
    
        2
  •  3
  •   Yacoby    16 年前
        3
  •  2
  •   zombat    16 年前

    是的,肯定有。看看 func_get_args() ,它应该完全符合你的需要。

        4
  •  0
  •   Jon    16 年前

    using func_num_args() func_get_arg(index) ,或使用以下命令将所有参数作为数组 func_get_args() .

    例子:

    function variable_arguments() {
        echo "This function was called with ".func_num_args()." arguments.<br />";
        echo "Those arguments were:<br /><pre>";
        echo print_r(func_get_args());
        echo "</pre>";
    }
    
    variable_arguments("Hello", 42, array(true));
    
        5
  •  0
  •   capfu    16 年前

    正如其他人在您使用之前发布的那样 func_get_args()

    $params = array(1, 2, 'something');
    doSomething($params);
    
    function doSomething($params) {
        foreach ($params as $value) {
        // do something.
        }
    }
    

    推荐文章