call_user_func() 和 call_user_func_array(),经过传入字符串函数,能够调用自定义函数,而且支持引用,都容许用户调用自定义函数并传入必定的参数:数组
一、mixed call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] )函数
第一个参数为自定义函数名称,后面的参数为函数的参数,返回值为自定义函数的结果。spa
function say($word) { echo $word; } call_user_func('say', 'hello world'); //输出 //hello world
固然也能够调用类中的方法:code
class World { function sayHello($word = '') { echo $word; } } //注意,必须是要实例化的,除非是static $world = new World(); call_user_func([$world, 'sayHello'], 'hello world'); //输出 hello world
注意:上面写数组的方式[ ],若是PHP版本在PHP5.4如下的,仍是用array()blog
二、mixed call_user_func_array ( callable $callback , array $param_arr )字符串
跟call user func()在功能上实际上是同样的,只是传入参数上稍有区别,这个其实从方法的命名上就能够看的出来:io
function say($word) { echo $word; } call_user_func_array('say', ['hello world']); //注意:第二个参数是数组的形式 //输出 //hello world
class World { function sayHello($word = '') { echo $word; } } //注意,必须是要实例化的,除非是static $world = new World(); call_user_func_array([$world, 'sayHello'], ['hello world']); //注意:第二个参数是数组形式 //输出 hello world