PHP闭包研究

闭包也就是PHP的匿名函数, 但是和函数不同的是,闭包可以通过use使用函数声明时所在作用域的变量的值。

形式如下

$a = function($arg1, $arg2) use ($variable) { 

// 声明函数闭包到变量$a, 参数为$arg1, $arg2 ,该闭包需使用$variable变量 }

例如

<?php
$result = 0;
 
$one = function()
{ var_dump($result); };
 
$two = function() use ($result)
{ var_dump($result); }; // 可以认为 $two这个变量 本身记录了该函数的声明以及use使用的变量的值
 
$three = function() use (&$result)
{ var_dump($result); };
 
$result++;
 
$one();    // outputs NULL: $result is not in scope
$two();    // outputs int(0): $result was copied
$three();    // outputs int(1)

顺便贴一个不错的应用贴

http://www.cnblogs.com/yjf512/archive/2012/10/29/2744702.html

原文地址:https://www.cnblogs.com/sailrancho/p/3382942.html