通常来说,闭包也就是PHP的匿名函数, 但是和函数不同的是,闭包可以通过use使用函数声明时所在作用域的变量的值。
具体形式如下:
1$a = function($arg1, $arg2) use ($variable) {
2// 声明函数闭包到变量$a, 参数为$arg1, $arg2 ,该闭包需使用$variable变量
3}
具体用法实例如下:
01<?php
02$result = 0;
03
04$one = function()
05{ var_dump($result); };
06
07$two = function() use ($result)
08{ var_dump($result); }; // 可以认为 $two这个变量 本身记录了该函数的声明以及use使用的变量的值
09
10$three = function() use (&$result)
11{ var_dump($result); };
12
13$result++;
14
15$one(); // outputs NULL: $result is not in scope
16$two(); // outputs int(0): $result was copied
17$three(); // outputs int(1)
18?>
更多信息请查看IT技术专栏