摘要: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 '我是类的静态方法!<br>'; 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);
总结:函数使用很简单,学习重点是深刻理解它的意义和用途