函數(shù)作用:該函數(shù)主要用于通過(guò)函數(shù)名去調(diào)用該函數(shù)
例如:
function test(){
echo "hello world\n";
}
$methodName = "test";
call_user_func($methodName);
上面的語(yǔ)句執(zhí)行后相當(dāng)于直接調(diào)用test()劫拢,不過(guò)是可以通過(guò)函數(shù)名來(lái)調(diào)用函數(shù)。同時(shí)也可以用這種方法來(lái)調(diào)用:
$methodName = "test";
$methodName();
產(chǎn)生的結(jié)果是一樣的噪漾,而且這種方法在性能上會(huì)比上面的方法好一點(diǎn)。
除了調(diào)用函數(shù)唆涝,還可以調(diào)用對(duì)象的方法:
class T{
static public function test(){
echo "hello world\n";
}
}
//php 5.3以前需要這樣調(diào)用
call_user_func("T::test");
//php 5.3以后测垛,可以將class和method傳入一個(gè)數(shù)組再將數(shù)組傳給call_user_func方法
call_user_func(array("T", "test"));
上面執(zhí)行效果是一樣的
call_user_func還可以與匿名函數(shù)配合如:
function call_func(){
foreach(func_get_args() as $func){
call_user_func($func);
}
}
call_func(function(){
echo "anonymous function\n";
});
上面的函數(shù)還能同時(shí)調(diào)用多個(gè)函數(shù)