13.PHP回调函数和变量函数

<?php

/* 变量函数 
 * 回调函数
 * 
 */
    function demo($num,$n){
        
        for($i=1;$i<$num;$i++){
            if($n($i))         //使用变量函数
                continue;
            echo $i."<br>";
        }
    }
    
    //是3的整倍数return false;不会执行continue,被echo输出
    function jump_3($i){
        if($i%3==0)
            return false;
        else 
            return true;
    }
    //调用jump_3()
    demo(100,'jump_3');
    
    //输出回文数函数
    function aba($i){
        if($i==strrev($i))
            return false;
        else
            return true;
    }
    //调用aba()
    demo(100,'aba');
?> 
<?php

/* 如果参数个数是变长时,就不能直接使用变量函数
 * 而应该用  call_user_func_array("函数名",$arr)
 * mixed  call_user_func_array  ( callable  $callback  , array $param_arr  )
 * 调用回调函数,并把一个数组参数作为回调函数的参数 
 * 回调函数 
 */

function  foobar ( $arg ,  $arg2 ) {
    echo  __FUNCTION__ ,  " got  $arg  and  $arg2 <br>" ;     //函数
}
class  foo  {
    function  bar ( $arg ,  $arg2 ) {
        echo  __METHOD__ ,  " got  $arg  and  $arg2 <br>" ;   //类中的方法
    }
    
    static function one(){
        echo __METHOD__ ," is a static method";
    }
}


// Call the foobar() function with 2 arguments
call_user_func_array ( "foobar" , array( "one" ,  "two" ));

// Call the $foo->bar() method with 2 arguments
$foo  = new  foo ;
call_user_func_array (array( $foo ,  "bar" ), array( "three" ,  "four" ));

call_user_func_array (array($foo,"one" ),array());
//foo::one();   //调用类中的静态方法
    
?> 

 

posted @ 2016-04-17 14:47  MatthewBlog  阅读(287)  评论(0)    收藏  举报

页脚