call_user_func函式類似於一種特別的呼叫函式的方法,使用方法如下
- 第一種情況:
function set_max($a,$b)
{
if($a>$b)
echo $a;
else
echo $b;
}
call_user_func(`set_max`, "111","222");//結果為222
此時 第一個引數 set_max
作為call_user_func
的回撥函式使用,$a=111,$b=222
。
- 第二種情況
class a
{
function b($c)
{
echo $c ;
}
}
$num = 200 ;
call_user_func(array(`a`,`b`),$num);//結果為200
此時第一個引數為一個陣列 那麼 回撥就是 a
類裡面的b
方法,num
作為引數傳到b
方法裡面。省去了例項化a
的過程。
說到這裡就不得不再看看 call_user_func_array
, 其實call_user_func_array
跟call_user_func
類似 使用如下:
function set_max($a,$b)
{
if($a>$b)
echo $a;
else
echo $b;
}
call_user_func_array(`set_max`,array(111,222));
//結果222
比call_user_func
看起來直觀一點。 而call_user_func_array
對類裡面方法的使用則如下:
class test
{
function set_max($a,$b)
{
if($a>$b)
echo $a;
else
echo $b;
}
}
call_user_func_array(array(`test`,`set_max`),array(111,222));
//結果同樣為222