摘要:call_user_func_array — 调用回调函数,并把一个数组参数作为回调函数的参数。该函数把第一个参数作为回调函数调用,把参数数组(索引数组)作为回调函数的的参数传入。返回值为回调函数执行...
call_user_func_array — 调用回调函数,并把一个数组参数作为回调函数的参数。
该函数把第一个参数作为回调函数调用,把参数数组(索引数组)作为回调函数的的参数传入。
返回值为回调函数执行的结果或者为false(回调函数执行有error时)
使用场景:
场景一:
参数数目不确定时
函数的参数是用户传入的,而且参数的数目不确定。
场景二:
用于函数回调
回调函数可能是一个普通函数,可能是类方法,也可能是静态方法。使用call_user_func_array,你就不用去判断方法的类型。
例1:function call_func($callback){
return call_user_func_array($callback, array(1,2));
}
//回调 ->类的普通方法
call_func(array($obj, 'method'));
//回调 ->类的静态方法
call_func(array('classname', 'method'));
//回调 -> 普通函数
call_func('simple_function');
例2:class test{
public static function say_static_fun($arguments1, $arguments2, $arguments3){
echo '我是类的静态方法!
';
print_r($arguments1);// a
print_r($arguments2);// b
print_r($arguments3);// c
}
}
$arguments = array('a','b','c');
call_user_func_array(array('test', 'say_static_fun'), $arguments);
总结:函数使用很简单,学习重点是深刻理解它的意义和用途