使用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
本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。
微信扫码关注
更新实时通知