1. 程式人生 > 其它 >call_user_func_array 應用場景分析

call_user_func_array 應用場景分析

技術標籤:php

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就非常方便。