Sian 发表于 2015-12-28 15:22:28

借用系统函数进行回调函数实现

<?php
    // 变量函数:将变量加括号即为以该变量为名称的函数
    // 回调函数:以函数名为变量传入另一个函数做为变量调用,即为回调函数
    function demo($num, $n){
      for ($i = 0; $i < $num; $i++){
                // 相当于调用函数名为$n值的函数,参数为只有$i一个参数的数组
                // 相比变量函数$n($i)进行回调
            if (call_user_func_array($n, array($i))) continue;
            echo $i.'<br/>';
      }
    }
   
    // 过滤以5结尾的数字
    function test($i){
      if ($i % 5 == 0) return true;
      return false;
    }
   
    // 过滤带3的数字
    function test1($i){
      // 正则表达式 preg_match(string $pattern, string subject)
      if (preg_match('/3/', $i)) return true;
      else return false;
    }
   
    // 过滤回旋数
    function test2($i){
      if ($i == strrev($i)) return true;
      else return false;
    }
   
    demo(100, "test2");
   

Sian 发表于 2015-12-28 15:24:24

call_user_func_array(callback $function, array $param_arr)
为系统函数
第一个参数为函数名称字符串,第二个参数为参数数组

页: [1]
查看完整版本: 借用系统函数进行回调函数实现