共计 1036 个字符,预计需要花费 3 分钟才能阅读完成。
一:办法解释
call_user_func:把第一个参数作为回调函数进行调用,其余参数作为回调函数的参数
call_user_func_array:把第一个参数作为回调函数进行调用,第二个参数传入数组,将数组中的值作为回调函数的参数
二:call_user_func 和 call_user_func_array 简略介绍
1:第一个参数传入办法名
例:
(1) 原生 php 中应用:
function test($test1, $test2) {return $test1 . $test2;}
echo call_user_func('test', 'a','b');// 输入后果为 ab
echo call_user_func_array('test', ['c', 'd']);// 输入后果为 cd
(2) 框架中应用:
public function test($test1,$test2)
{return $test1 . $test2;}
echo call_user_func(array($this, 'test'), 'a', 'b');// 输入后果为 ab
echo call_user_func_array(array($this, 'test'), ['a', 'b']);// 输入后果为 cd
2:第一个参数作为匿名函数
原生和框架中应用形式雷同:
echo call_user_func(function ($test){return $test;}, 1);// 输入后果为 1
echo call_user_func_array(function ($test){return $test;}, [1]);// 输入后果为 1
3:第一个参数调用类中的办法
class Test {static function test1($test){return $test;}
}
(1):原生 php 调用:
echo call_user_func(array('test', 'test1'), 1);// 输入后果为 1
echo call_user_func_array(array('test', 'test1'), [1]);// 输入后果为 1
(2):框架中调用:
echo call_user_func(array(new Test(), 'test'), 1);// 输入后果为 1
echo call_user_func_array(array(new Test(), 'test'), [1]);// 输入后果为 1
正文完