如何在PHP中代理varargs函数
作者:互联网
我想“代理”一个varargs函数(有点像快捷方式):
/** The PROXY function */
function proxy_to_foo(/*varargs*/)
{
real_foo(func_get_args());
}
/** The real function */
function real_foo(/*varargs*/)
{
print_r(func_get_args());
}
// Now I call it:
proxy_to_foo(1, 2, 3);
但我明白了(很明显):
Array
(
[0] => Array
(
[0] => 1
[1] => 2
[2] => 3
)
)
鉴于此目的是:
Array
(
[0] => 1
[1] => 2
[2] => 3
)
如何解决?一些怪异的反射魔术?
解决方法:
使用call_user_func_array:
/** The PROXY function */
function proxy_to_foo(/*varargs*/)
{
call_user_func_array('real_foo', func_get_args());
}
如果您的php是5.6及更高版本,请使用可变参数函数参数:
function proxy_to_foo(...$args)
{
real_foo(...$args);
}
function real_foo(...$args)
{
print_r($args);
}
标签:variadic-functions,php,function 来源: https://codeday.me/bug/20191029/1957457.html