php函数:call_user_func
前段时间浏览文档发现一个有意思的PHP函数:call_user_func 【文档地址】
函数作用:该函数主要用于通过函数名去调用该函数
例如:
function test(){ echo "hello world\n"; } $methodName = "test"; call_user_func($methodName);
上面的语句执行后相当于直接调用test(),不过是可以通过函数名来调用函数。同时也可以用这种方法来调用:
$methodName = "test"; $methodName();
产生的结果是一样的,而且这种方法在性能上会比上面的方法好一点。
除了调用函数,还可以调用对象的方法:
class T{ static public function test(){ echo "hello world\n"; } } //php 5.3以前需要这样调用 call_user_func("T::test"); //php 5.3以后,可以将class和method传入一个数组再将数组传给call_user_func方法 call_user_func(array("T", "test"));
上面执行效果是一样的
call_user_func还可以与匿名函数配合如:
function call_func(){ foreach(func_get_args() as $func){ call_user_func($func); } } call_func(function(){ echo "anonymous function\n"; });
上面的函数还能同时调用多个函数