繁体   English   中英

不知道参数总数的多个参数? (PHP作为参数主题)

[英]multiple parameters without knowing the argumen total ? (PHP functions as parameter topic)

现在,我开始学习如何将PHP函数作为参数进行处理,现在我具有这样的功能。

    function do_action($func_name) {
    if (func_num_args() <= 1) {
        return $func_name();
    } 

    $args = func_get_args();
    unset ($args[0]);        

    extract($args, EXTR_PREFIX_ALL , "foo");        
    return $func_name($foo_1, $foo_2);  //HERE ;)
}

echo do_action('time');
echo do_action('date', 'D, d F Y', 1267515462);  

如何使这段代码片段具有返回和处理多个参数的能力,而又不知道参数的总数? 如您所知,日期能够处理2个参数。

日期(字符串$ format [,int $ timestamp])

我想扩大do_action使其能够在没有总参数限制的情况下工作。 (请参见// HERE上面的代码),它能够将每个函数作为变量返回。

我认为您正在寻找的是call_user_func_array()

编辑:类似:

function do_action($func) {
    $args = func_get_args();
    array_shift($args); // removes the first element
    return call_user_func_array($func, $args); // magic!
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM