使用call_user_func_array可以调用回调函数,并把一个数组参数作为回调函数的参数
mixed call_user_func_array ( callable $callback , array $param_arr )
把第一个参数作为回调函数(callback)调用,把参数数组作(param_arr)为回调函数的的参数传入
function demo($num,$n){
    for($i=0;$i<$num;$i++){
        if(call_user_func_array($n,array($i))){
            echo $i.'<br>';
        }
    }
}
function test($i){
    if($i%5){
        return true;
    }
}
demo(20,'test'); 
实现回调函数时,通常要使用call_user_func_array()函数,而不是变量函数,因为变量函数无法传递对象中的方法或和类中的静态方法
function demo($num, $n) {
    for($i=0; $i<$num; $i++) {
        if(call_user_func_array($n, array($i))){
            echo $i."<br>";
        }    
    }
}
    
class Filter {
    function one($i) {
        if($i%3==0) {
            return true;
        }
    }
    static function two($i) {
        if(preg_match('/3/', $i)) {
            return true;
        }
    }
}
demo(500, array(new Filter(), "one"));
demo(500, array("Filter", "two")); 
原文链接:https://www.qiquanji.com/post/7836.html
本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。
                        微信扫码关注
更新实时通知