//可变函数-可把函数赋值给变量
$funHanshu = 'md5';
echo $funHanshu('king');
echo '<br>';
echo md5('king');
die;
//回调函数-可在参数里直接调用函数
function add($x,$y){
return $x+$y;
}
function callfunction($functionName,$x,$y){
return $functionName($x,$y);
}
echo callfunction('add',1,3);
//匿名函数(闭包函数)--就是没有名字的函数
$funs = function(){
echo 'this is a test';
};
$funs();
//通过crete_function
$funs = create_function('','echo "this is funcion";');
$funs();
echo '<hr>';
$funs = create_function('$x,$y','return $x+$y;');
echo $funs(1,100);
$array = [1,2,3,4,5];
$arr = array_map(function($var){return $var*2;},$array);
print_r($arr);
echo '<hr>';
echo call_user_func(function($name){return "hell0 {$name}";},'king');
//递归函数--内部循环
function test($i){
echo $i.'<br>';
if($i > 0){
$fun = __FUNCTION__;
$fun($i-1);
}
echo $i.'<br>';
}
test(100);