background image

PHP

入门 PHP 闭包(Closure)使用说明

不知不觉发现 PHP 已经出到了 5.5 版本,而自己一直在用 PHP5.2,在我习惯在 javascript
中使用闭包之后,忽然间对 PHP 的闭包打起了兴趣。
于是乎在网上下了个 WAMP 集成开发环境,是 PHP5.3 版本的(PHP5.3 开始引入了闭包
的特性),不得不说 WAMP 安装使用真的很方便。简单配置了一下,开始动手。
匿名函数
提到闭包就不得不想起匿名函数,也叫闭包函数(closures),貌似 PHP 闭包实现主要就
是靠它。声明一个匿名函数是这样:
代码如下:
 

$func

 = 

function

() {

 
}; 

//带结束符

 
可以看到,匿名函数因为没有名字,如果要使用它,需要将其返回给一个变量。匿名函数
也像普通函数一样可以声明参数,调用方法也相同:
代码如下:
 

$func

 = 

function

$param

 ) {

echo

 

$param

;

};

$func

( 'some string' );

//输出:
//some string

 
顺便提一下,PHP 在引入闭包之前,也有一个可以创建匿名函数的函数:create 

function

,但是代码逻辑只能写成字符串,这样看起来很晦涩并且不好维护,所以很少有

人用。
实现闭包
将匿名函数在普通函数中当做参数传入,也可以被返回。这就实现了一个简单的闭包。
下边有三个例子
代码如下:
 

//例一
//在函数里定义一个匿名函数,并且调用它
function

 printStr() {