一:方法解釋php
call_user_func:把第一個參數做爲回調函數進行調用,其他參數做爲回調函數的參數數組
call_user_func_array:把第一個參數做爲回調函數進行調用,第二個參數傳入數組,將數組中的值做爲回調函數的參數框架
二:call_user_func和call_user_func_array簡單介紹函數
1:第一個參數傳入方法名this
例:code
(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)框架中使用:io
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:第一個參數做爲匿名函數function
原生和框架中使用方式相同:class
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