call_user_func的功能类似于一个函数调用的特殊方法,它是用如下:
复制代码代码如下所示:
函数A(b,$ C)
{
回声$;
回声$;
}
call_user_func('a',111
call_user_func('a',333
111222333444 显示
>

调用类的内部方法很奇怪。它是数组,不知道开发人员如何考虑它,当然,它保存新的,充满了新的想法。
复制代码代码如下所示:
类{
函数B($ c)
{
回声$;
}
}
call_user_func(阵列(
111 显示
>

的call_user_func_array功能是call_user_func非常相似,但它只是一种传递参数,使结构更清晰的参数。
复制代码代码如下所示:
函数A(b,$ C)
{
回声$;
回声$;
}
call_user_func_array('a',阵列(111
111222 显示
>

的call_user_func_array功能也可以在类中调用方法
复制代码代码如下所示:
班班
{
函数BC($,$){
$ BC =;
回声$ BC;
}
}
call_user_func_array(阵列('classa ','bc '),数组(111
333 显示
>

无论是call_user_func功能和call_user_func_array功能支持的参考,使其功能更符合一般的函数调用:
复制代码代码如下所示:
函数A(b)
{
美元+;
}
$=0;
call_user_func('a',$c);
1
call_user_func_array('a',阵列($ C));
2

call_user_func_array PHP的简单用法
今天,在群里,有一个问call_user_func_array由Lewis使用,因为它从来没有被使用过,不能说什么。所以看看手册,发现它是这样写的。
call_user_func_array
(PHP > = 4.0.4 4,PHP 5)
call_user_func_array --给予parametersdescription数组用户功能
混合call_user_func_array(回调函数,数组param_arr)
调用函数定义的用户定义函数,参数包含在
还有一个例子。
复制代码代码如下所示:
< PHP
功能foobar($ Arg,$ 2){
回声__function__,买了精氨酸和$ 2 ;
}
类Foo {
功能栏($ Arg,$ 2){
回声__method__,买了精氨酸和$ 2 ;
}
}
叫foobar(功能) / 2参数
call_user_func_array(foobar
用2个参数调用$ bar bar(方法)
新富;
call_user_func_array(阵列($ foo,酒吧)、阵列(三
>

上述例程的输出与:
要有一个和两个
酒吧有三和四
2例# call_user_func_array()使用的命名空间名称
复制代码代码如下所示:
< PHP
命名空间foobar;
类Foo {
静态公共功能测试($ name){
打印hello { $ }!;
}
}
PHP 5.3.0 / /
call_user_func_array(__namespace__。 foo::测试,阵列('hannes '));
PHP 5.3.0 / /
call_user_func_array(阵列(__namespace__。 foo,测试),数组(菲利浦));
>

上述例程的输出与:
你好汉尼斯!
你好菲利普!
3例#使用lambda函数
复制代码代码如下所示:
< PHP
$函数=功能($美元arg1,arg2){
返回arg1 * $ 2;
};
var_dump(call_user_func_array($函数、数组(2, 4))); / * * / PHP 5.3.0
>

上述例程将输出:
Int(8)
我认为这个例子在看到这个例子后应该有点清楚,对吗
我对这个功能很了解,如果错了,请不要嘲笑大师:
使用这个功能真的是有点类似于函数的重载,因为他的第一个参数是一个字符串,名字是第二个参数的函数是一个数组,我们可以作为函数的参数,它是这么用的,如果你看过我以前的文章:伪重载PHP,你可以要明白,正是因为这个功能,我也可以利用这一发现函数重载:
复制代码代码如下所示:

*实例之后结束了,它被认为已经完成,结果是,有人问call_user_func_array()看手册。
*因此,上面的测试函数可以简化为以下示例。
* /
功能otest1(美元)
{
回声(一个参数);
}
功能otest2($,$)
{
回声(参数);
}
功能otest3($,$,$ C)
{
回声();
}
()函数的抗议
{
一美元= func_get_args();
Num = func_num_args(美元);
call_user_func_array('otest。为民,为args);
}
抗议(1,2);

你看到了吗我的原创文章,在文章中提到的错误重新加载,仅供参考。