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";
});

上面的函数还能同时调用多个函数

posted @ 2017-04-28 13:27  妖星杉木  阅读(418)  评论(0编辑  收藏  举报