<?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(); //调用类中的静态方法
?>