PHP匿名函数(一)

  

,, php的匿名函数是继php5.3之后新增添的功能,在越来越多的框架支持高版本的php之后,都有使用到此功能,手册上的解释比较生涩难懂,那么我们撇开手册不谈,以代码切入,希望让大家能更好的理解。


,

,,,,聊匿名函数之前,我们有必要说说变量函数

,,,1,首先,我们定义一个普通的函数

,,,,function 测试(a, b)美元{   ,,,,,,return  a + b美元;   ,,,}   ,,,test 美元;=,测试(1、2);   ,,,echo 测试;美元,,,//res =, 3

,,,2,将其改变为变量函数

,,,,function 测试(a, b)美元{   return  a + b美元;   }   美元test ,=, & # 39;测试# 39;;   echo ,测试(1、2);美元,//res ,=, 3

,,,,变量函数就是把函数名赋值给一个变量,然后使用测试()或美元者有参数时美元测试(1、2)如此这般来使用。



,,,, 1,匿名函数定义,,

,,,,,匿名函数,顾名思义就是没有函数名的函数。

,,,,我们把上面例子中的函数名称去掉就是匿名函数了,如下:,

,,,,,,,,function  () {   ,,,,,,,,,,   ,,,,,,,},,,//这段代码就是没有函数名称的匿名函数的主体部分了,切记【末尾需要加上分好】   ,,,,,,   ,,,,,,,test 美元;=,函数(){   ,,,,,,,,,,return  & # 39; 1111111111111 & # 39;;   ,,,,,,,},,   ,,,,,,,   ,,,,,,,test 美元;,=,函数(a, b)美元{   ,,,,,,,,,,,return  a 美元;+,b美元;   ,,,,,,,},,,//,这段代码就是一个标准的匿名函数了,有函数主体,有返回值,这里的返回值不是回报,而是返回给了变量测试美元。

,,,,,至于为什么末尾要加分号,你可以这样理解:,,

,,,,,一个普通变量的赋值$ name=& # 39; zhangsan& # 39;;,变量赋值是需要在末尾加分号的。

,,,,这里是匿名函数,同样也是变量的赋值,所以加上分号也好理解了。

,,,

,,,, 2,匿名函数使用

,,,,,,,,,,,test 美元;=,函数(){   ,,,,,,,,,,,,,,return  & # 39; 1111111111111 & # 39;;   ,,,,,,,,,,},,   ,,,,,,,,,,echo 测试();美元,//和变量函数一样   ,,,,,,,   ,,,,,,,,,,test 美元;,=,函数(a, b)美元{   ,,,,,,,,,,,,,return  a 美元;+,b美元;   ,,,,,,,,,,};   ,,,,,,,,,,echo 测试(1、2);美元,//同理,传入参数


, <强>三,疑问(匿名函数的意义)

,,,,,看到这里,大家难免有疑问,这个变量函数我们用的都比较少,这个匿名函数视乎并没有普通函数来的实现,那这个匿名函数存在的意义是什么呢?

,,,,,匿名函数在设计时,并不是为了跟随模仿js而来的,php的匿名函数主要的目的是为了这两个功能【闭包函数】,【回调函数】。

,,,,,关于闭包和回调我们下篇文章再和大家聊聊。




,,


PHP匿名函数(一)