这是我的裸机插件系统:
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
如何打印函数的所有参数,用空格分隔?
答案 0 :(得分:1)
您需要使用call_user_func_array
代替自定义函数DoPlugin
:
function MyPlugin(){
echo implode(" ", func_get_args());
}
$args = array("MyPlugin", "Egg", "Milk");
call_user_func_array(array_shift($args), $args);
输出将是:
Egg Milk
答案 1 :(得分:0)
DoPlugin() this your function
假设您要发送此DoPlugin();
DoPlugin($arg1,$agr2)
调用函数时发送参数值