call_user_func_array 应用场景分析

1. 场景一

a、你要调用的函数名是未知的
b、要调用函数的参数类型及个数也是未知的

定时任务类需要定时运行一个函数,则接口就可以类似这样设计:

/**
 * 在$run_time时刻运行$call_back
 */
function task_add($run_time, $call_back, $param_arr){
    while(1){
        if(time()>=$run_time){
            call_user_func_array($call_back, $param_arr);
            return;
        }
        sleep(1);
    }
}

$call_back和$param_arr是用户传递的,可以是任意函数任意参数。这种场景下很难直接调用函数,使用call_user_func_array就非常方便。

原文地址:https://www.cnblogs.com/hubing/p/4933896.html