<span style="font-size:18px;"><?php
/**
* 闭包的概念
* 1.外部的函数可以调用函数内部的局部变量
* 2.保护了变量只在函数内部运行,不会受其他全局变量的影响
* 3.运行后变量还保存在栈中,没有释放,所以javascript中经常用到这个特性
* 运行的结果
* 101
* 102
* 103
* 104
*/
function demo()
{
$a = 100;
$b = 'bbbbbbbbbbbbbbb<br>';
$fn = function() use(&$a,$b)
{
$a++;
echo $a."<br>";
};
return $fn;
}
$var = demo();
$var();
$var();
$var();
$var();
?></span>
<?php
function getClosure($a, $b) {
return function ($c, $d) use ($a, $b) {
var_dump($a, $b, $c, $d);
};
}
$func = getClosure(100,200);
$func(300, 400);