26
2019
07

PHP call_user_func_array调用回调函数

使用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

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

gzh

微信扫码关注

更新实时通知

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。