直接上代码:
<?php //php函数深入之匿名函数 //什么是匿名函数? 没有名字的函数就是匿名函数 /*function fun1(){}; 这是普通函数 因为这个函数有名字 名字为fun1 $test = function(){}; 这个就是匿名函数,因为它没有函数名字,它只是把这个匿名函数赋值给了$test变量 */ //(1)匿名函数的使用方式1 $fun1 = function($n1,$n2){ return $n1 + $n2; }; //把一个函数赋值给变量$fun1 通过变量$fun1来调用这个匿名函数 //调用匿名函数 echo $fun1(10,90); //output: 100 echo '<br/>'; //(2)匿名函数使用方式2 /*如果程序员临时需要一个函数,用一次后就不想使用了 可以把匿名函数当做回调函数使用 回调函数: 举例: 你调用了某个函数,而这个函数内又会调用一个由你实现的另一个函数(A), 那么这个函数(A)就是所谓的回调函数。 所以,一般来说,你只是不直接去调用罢了。其实这个函数和别的函数,从函数的角度来讲没有区别,只是人们命名为回调函数 */ //把一个匿名函数当做回调函数使用的经典案例如下: function get_val($n1,$n2,$f) { $sum = $n1 + $n2; $res = $f($sum); echo 'res = '.$res; //输出: res = 36 } //调用的时候体现出匿名函数和回调函数的概念 //将一个匿名函数传递给$f使用,$f就是一种回调函数 get_val(9,9,function($val){ return $val * 2; }); /*以上代码执行过程: 9,9分别传给get_val函数的$n1,$n2参数,get_val在内部计算出$n1和$n2的和之后 此时又去执行$f($sum)这一步,而在调用 get_val函数的时候 我们给的第三个参数是一个匿名函数 即function($val){},所以又进入了这个匿名函数内部开始执行, 将$sum传给匿名函数的$val 而匿名函数(此时也叫回调函数)内部又将传进来的$val * 2之后的结果返回给调用处, 即又返回到了get_val函数里的$res = $f($sum);这一步,所以最终输出结果是 res = 36 */ ?>
声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。
精彩评论