摘要:call_user_func_array — 調用回調函數(shù),并把一個數(shù)組參數(shù)作為回調函數(shù)的參數(shù)。該函數(shù)把第一個參數(shù)作為回調函數(shù)調用,把參數(shù)數(shù)組(索引數(shù)組)作為回調函數(shù)的的參數(shù)傳入。返回值為回調函數(shù)執(zhí)行...
call_user_func_array — 調用回調函數(shù),并把一個數(shù)組參數(shù)作為回調函數(shù)的參數(shù)。
該函數(shù)把第一個參數(shù)作為回調函數(shù)調用,把參數(shù)數(shù)組(索引數(shù)組)作為回調函數(shù)的的參數(shù)傳入。
返回值為回調函數(shù)執(zhí)行的結果或者為false(回調函數(shù)執(zhí)行有error時)
使用場景:
場景一:
參數(shù)數(shù)目不確定時
函數(shù)的參數(shù)是用戶傳入的,而且參數(shù)的數(shù)目不確定。
場景二:
用于函數(shù)回調
回調函數(shù)可能是一個普通函數(shù),可能是類方法,也可能是靜態(tài)方法。使用call_user_func_array,你就不用去判斷方法的類型。
例1:
function call_func($callback){ return call_user_func_array($callback, array(1,2)); } //回調 ->類的普通方法 call_func(array($obj, 'method')); //回調 ->類的靜態(tài)方法 call_func(array('classname', 'method')); //回調 -> 普通函數(shù) call_func('simple_function');
例2:
class test{ public static function say_static_fun($arguments1, $arguments2, $arguments3){ echo '我是類的靜態(tài)方法!<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);
總結:函數(shù)使用很簡單,學習重點是深刻理解它的意義和用途