通常来说,闭包也就是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 | ?> |
时间: 2024-08-08 12:18:02