在创建闭包时, 生成所use变量的快照, 下文再次调用闭包函数时, 快照变量不改变
$a = 5;
$b = function ($x) use ($a) {
$a += $x; echo $a;
};
$a = 10; // 这个变量被再次赋值, 但是在use语句中的'快照'是不会改变的
$b(100); // 输出 : 105
实际应用 2 : 使用引用传值, 生成所use变量的指针, 下文再次调用闭包函数时, 快照变量会改变(其实这样做与直接传参已经没有区别, 所以这么做意义不大, 而且代码可读性降低)
$a = 5;
$b = function ($x) use (&$a) {
$a += $x; echo $a;
};
$a = 10; // 变量重新赋值, 上文中闭包所引用的变量值也被改变
$b(100); // 输出 : 110