通常來說,閉包也就是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 ?>