年年有"余"

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1587|回复: 0

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

[复制链接]
  • TA的每日心情

    2024-10-15 10:05
  • 签到天数: 372 天

    [LV.9]以坛为家II

    发表于 2015-12-28 15:41:04 | 显示全部楼层 |阅读模式
    [PHP] 纯文本查看 复制代码
    <?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"));

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    手机版|小黑屋|Archiver|iOS开发笔记 ( 湘ICP备14010846号 )

    GMT+8, 2024-11-24 04:14 , Processed in 0.044230 second(s), 18 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表