php 闭包, 匿名函数
2017-07-27 23:55
561 查看
闭包#
闭包是什么?#
1).闭包和匿名函数在PHP5.3中被引入。
2).闭包是指在创建时封装函数周围状态的函数,即使闭包所在的环境不存在了,闭包封装的状态依然存在,这一点和Javascript的闭包特性很相似。可以看我之前写的彻底弄懂Javascript闭包
3).匿名函数就是没有名称的函数,匿名函数可以赋值给变量,还可以像其他任何PHP对象一样传递。可以将匿名函数和闭包视作相同的概念。
4).需要注意的是闭包使用的语法和普通函数相同,但是他其实是伪装成函数的对象,是Closure类的实例。闭包和字符串或整数一样,是一等值类型。
闭包是什么?#
1).闭包和匿名函数在PHP5.3中被引入。
2).闭包是指在创建时封装函数周围状态的函数,即使闭包所在的环境不存在了,闭包封装的状态依然存在,这一点和Javascript的闭包特性很相似。可以看我之前写的彻底弄懂Javascript闭包
3).匿名函数就是没有名称的函数,匿名函数可以赋值给变量,还可以像其他任何PHP对象一样传递。可以将匿名函数和闭包视作相同的概念。
4).需要注意的是闭包使用的语法和普通函数相同,但是他其实是伪装成函数的对象,是Closure类的实例。闭包和字符串或整数一样,是一等值类型。
class App { protected $route = array(); protected $responseStatus = '200 OK'; protected $responseContentType = 'text/html'; protected $responseBody = 'Hello world'; public function addRoute($routePath, $routeCallback) { $this->routes[$routePath] = $routeCallback->bindTo($this, __CLASS__); } public function dispatch($currentPath) { foreach($this->routes as $routePath => $callback) { if ($routePath === $currentPath) { $callback(); } } header('HTTP/1.1' . $this->responseStatus); header('Content-type: ' . $this->responseContentType); header('Content-length: ' . mb_strlen($this->responseBody)); echo $this->responseBody; } }
相关文章推荐
- PHP闭包--匿名函数
- [李景山php] 深入理解PHP内核[读书笔记]--第四章:函数的实现 --匿名函数及闭包
- php闭包和匿名函数
- PHP匿名函数及闭包
- php闭包与匿名函数
- php 闭包与匿名函数
- PHP匿名函数、闭包、function use
- php的闭包(Closure)匿名函数初探
- php的闭包(Closure)也就是匿名函数。是PHP5.3引入的。
- php中的匿名函数和闭包(closure)
- PHP中的闭包(匿名函数)浅析
- PHP匿名函数及闭包
- 20.php回调、匿名函数、和闭包操作
- PHP中的闭包和匿名函数
- 浅析PHP中的闭包和匿名函数
- php 函数【匿名函数、闭包】
- PHP匿名函数(闭包)
- php的闭包(Closure)也就是匿名函数。是PHP5.3引入的。
- php匿名函数和闭包
- php中的匿名函数和闭包(closure)