在PHP中打印所有函数参数

在PHP中打印所有函数参数,php,arrays,function,arguments,Php,Arrays,Function,Arguments,以下是我的裸体插件系统: function DoPlugin() { $fargs = func_get_args(); $type = $fargs[0]; $args = range($fargs[1], $fargs[count($fargs)]); if(function_exists($type)) call_user_func($type, $args); else echo "Function doesn

以下是我的裸体插件系统:

 function DoPlugin() {
    $fargs = func_get_args();
    $type  = $fargs[0];
    $args  = range($fargs[1], $fargs[count($fargs)]);
    if(function_exists($type))
        call_user_func($type, $args);
    else
        echo "Function doesn't exist!";
    }

    function MyPlugin() {
    $fargs = func_get_args();
    $args    = range($fargs[0], $fargs[count($fargs)]);
    $strArgs = implode(" ", $args);
    echo $strArgs;
    }

    $args = array("MyPlugin", "Egg", "Milk");
    DoPlugin($args[0], range($args[1], $args[count($args)]));
它应该调用函数“DoPlugin”,然后用所有参数调用“MyPlugin”,然后“MyPlugin”将它们打印出来,并用空格隔开

这就是它的输出:

1 0
这就是我希望它输出的内容:

Egg Milk
如何打印一个函数的所有参数,并用空格分隔?

您需要使用而不是自定义函数
DoPlugin

function MyPlugin(){
    echo implode(" ", func_get_args());
}

$args = array("MyPlugin", "Egg", "Milk");
call_user_func_array(array_shift($args), $args);
输出将是:

蛋奶

演示:

假设您要发送此
DoPlugin()的两个参数


调用函数时发送参数值

range()
已返回一个数组-因此在另一个数组中有一个数组。更新帖子。它现在输出“10”。你需要认真思考你到底想在这里做什么。您希望参数逐个传递还是分组在数组中?就目前情况而言,这是混淆的,可能会导致你不想要的结果。如果要将数组的第一个元素与rest分开,也可以使用
array\u shift()
。我要检查数组中的第一个参数是否与函数相同,如果相同,则使用其余参数调用函数。我还希望示例函数打印传递给它的所有参数,并用空格分隔。抱歉,如果我弄糊涂了,我从来都不善于解释。
DoPlugin($args[0]、$args[1]、$args[2])<如何传递$args中的所有键?我希望用户提供一些参数,但我不知道会有多少参数。您也可以在那里使用
call\u user\u func
call\u user\u func(“DoPlugin”,$args)例如@kingkero干杯,它现在正是我想要的。@那么你能再次将其标记为已接受吗?这里的技巧实际上是调用用户函数数组()
(=>
DoPlugin($arg0,$arg1,…)
而不是调用用户函数()
(=>
DoPlugin(array($arg0,$arg1,…))
DoPlugin() this your function
DoPlugin($arg1,$agr2)