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