php函数 call_user_func_array() 的深入学习

袁志蒙 次浏览

摘要: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);

总结:函数使用很简单,学习重点是深刻理解它的意义和用途

随机新闻

表情

共0条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~