Sian 发表于 2015-12-28 15:41:04

变量函数的弊端,自定义函数回调对象中的方法

<?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;
    }
       
       
        /***指定一个类,并创建对象***/
       
        class MyClass{
                function one($i){
                        if ($i%3 == 0) return true;
                        else return false;
                }
               
                static function two($i){
                        if (preg_match('/3/', $i)) return true;
                        else return false;
                }
        }
       
        // 动态方法调用
        $myclass = new myClass();
        $myclass->one();
        // 静态方法调用
        MyClass::two();
       
        demo(500, array(new myClass(), "one"));
        demo(500, array("MyClass", "two"));
页: [1]
查看完整版本: 变量函数的弊端,自定义函数回调对象中的方法