简单 demo 能写,也能懂,但还是搞不懂这玩意是干嘛的..求推荐点精华帖
1
msg7086 2016-04-12 23:30:52 +08:00
应该是可以绑定当前作用域下的变量并且甩锅给其他程序吧(?
|
2
corboy OP |
3
xuwenmang 2016-04-13 00:13:43 +08:00
网友帮你搜系列
|
4
bombless 2016-04-13 10:50:32 +08:00 via Android
用来搞高阶函数的
习惯用高阶函数的会用的很爽,不会用的其实一般也不影响你实现自己的东西 |
5
bombless 2016-04-13 10:52:02 +08:00 via Android
最常见用法应该算是配合 usort array_filter array_map 吧。
|
6
jfcherng 2016-04-13 14:37:10 +08:00
在 preg_replace_callback 中也很好用
|
8
jtjing 2016-05-20 19:53:50 +08:00
大部分 php 初学者大部分时间都在使用框架 如 tp , laravel 等,会发现很多之前学的东西例如设计模式, oo 思想,魔术方法__call 等等几乎用不上,框架给你提供了一套类似友好的模式,你一直再熟悉这样的模式,完成你的工作。经验积累。。 up..up...up 然而当你自己开始写框架的时候你会发现提供一种良好的写法例如: App\User::find(1)->where(1)->get(),会用到之前所学的所有知识,你要让你写的框架给使用者提供一种好看优雅省事的写法,例如 foo(function(){ do sometings ! });这个时候你就要考虑为了实现这样“好看的”写法我们要在框架中怎么实现,闭包?魔术方法?我为了实现更加好看的写法这些东西能帮助我。
1.上面说明了你为什么单独把闭包拿出来,还有为什么闭包在你看来这么不解的原因。 2.说一下闭包我的见解:一个 A 函数里面有一个变量$a, 当执行这个函数以后函数体 以及 函数内部的所有东西全部释放,当这个函数又增加了一个函数 B ,这个时候 A 函数就有 2 个东西变量$a 和函数 B ,但是这个时候函数变量$a 传入了函数 B ,当执行完 A 的时候 函数体 释放了,然而$a 变量却不能释放,因为 B 函数在用,当 B 函数也用完了就可以释放了。 闭包是一个思想, php 中使用匿名函数实现闭包,也就是说匿名函数可以做别的事情, php 开发者跟匿名函数说你在帮我实现一下闭包吧,好呀。如果 php 开发者是你你可能说, C{} 这种写法就是闭包。随便你. |