PHP 匿名函数(一)
php 的匿名函数是继 php5.3 之后新增添的功能,在越来越多的框架支持高版本的 php 之后,都有使用到此功能,手册上的解释比较生涩难懂,那么我们撇开手册不谈,以代码切入,希望让大家能更好的理解.
一,变量函数
聊匿名函数之前,我们有必要说说变量函数
1 ,首先,我们定义一个普通的函数functiontest($a,$b){
return$a+$b;
}
$test=test(1,2);
echo $test;//res = 3
2,将其改变为变量函数functiontest($a,$b){
return$a+$b;
}
$test='test';
echo $test(1,2);//res = 3
变量函数就是把函数名赋值给一个变量,然后使用 $test() 或者有参数时 $test(1,2) 如此这般来使用.
二,匿名函数
1,匿名函数定义
匿名函数,顾名思义就是没有函数名的函数.
我们把上面例子中的函数名称去掉就是匿名函数了,如下:function(){
};// 这段代码就是没有函数名称的匿名函数的主体部分了,切记[末尾需要加上分好]
$test=function(){
return'1111111111111';
};
$test=function($a,$b){
return$a+$b;
};// 这段代码就是一个标准的匿名函数了,有函数主体,有返回值,这里的返回值不是 return,而是返回给了变量 $test.
至于为什么末尾要加分号,你可以这样理解:
一个普通变量的赋值 $name = 'zhangsan'; 变量赋值是需要在末尾加分号的.
这里是匿名函数,同样也是变量的赋值,所以加上分号也好理解了.
2,匿名函数使用$test=function(){
return'1111111111111';
};
echo $test();// 和变量函数一样
$test=function($a,$b){
return$a+$b;
};
echo $test(1,2);// 同理,传入参数
三,疑问(匿名函数的意义)
看到这里,大家难免有疑问,这个变量函数我们用的都比较少,这个匿名函数视乎并没有普通函数来的实现,那这个匿名函数存在的意义是什么呢?
匿名函数在设计时,并不是为了跟随模仿 js 而来的,php 的匿名函数主要的目的是为了这两个功能[闭包函数] ,[回调函数] .
关于闭包和回调我们下篇文章再和大家聊聊.
PHP 匿名函数(一)
来源: http://www.bubuko.com/infodetail-2485797.html