通常来说,闭包也就是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 ?>