http://www.php.net/manual/zh/language.types.callable.php
<?php
class a{
static function b($str){
echo $str;
}
}
class aa extends a{
static function aaa($str){
echo $str;
}
}
function c($str){
echo $str;
}
function d($str1,$str2){
echo $str1.'&'.$str2;
}
class e{
static function f($str1,$str2){
echo $str1.'&'.$str2;
}
}
call_user_func(array('a','b'),'a->b');//输出a->b
call_user_func('a::b','a::b->bb');//a::b->bb
call_user_func(array('aa','parent::b'),'aa->a->b->bb');//aa->a->b->bb
call_user_func('c','c->c');//输出c->c
call_user_func_array('d',array('d->d1','d->d2'));//d->d1&d->d2
call_user_func_array(array('e','f'),array('e->f->f1','e->f->f2'));//e->f->f1&e->f->f2
?>
mixed call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] )
第一个参数 callback 是被调用的回调函数,其余参数是回调函数的参数。
1、回调函数的参数是多个时(数组)使用call_user_func_array();否则使用call_user_func_aray().
2、调用某个类中的函数时 call_user_func() 或 call_user_func_array() 的第一个参数使用数组array('类名','方法') 或 使用字符串 类名::静态方法