php 使用 闭包时使用 use 和普通传参的区别有哪些??
$a = 100;
$b = function ($c) use ($a) {
$a += 13;
return $a * $c;
};
echo $b(432);
通过这种用法, 我只知道闭包及用法有如下:
可以在下文中的任何一个地方使用闭包函数
$b()
对传入的值进行处理, 并且在处理的过程中默认使用预先定义好的变量$a
参与处理.
然而, 仅此一点作用么??
php 使用 闭包时使用 use 和普通传参的区别有哪些??
$a = 100;
$b = function ($c) use ($a) {
$a += 13;
return $a * $c;
};
echo $b(432);
通过这种用法, 我只知道闭包及用法有如下:
可以在下文中的任何一个地方使用闭包函数$b()
对传入的值进行处理, 并且在处理的过程中默认使用预先定义好的变量$a
参与处理.
然而, 仅此一点作用么??
2 回答1.6k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答963 阅读✓ 已解决
2 回答1k 阅读
1 回答909 阅读
1 回答871 阅读
1 回答865 阅读
实际应用 1 : 在创建闭包时, 生成所use变量的快照, 下文再次调用闭包函数时, 快照变量不改变
实际应用 2 : 使用引用传值, 生成所use变量的指针, 下文再次调用闭包函数时, 快照变量会改变(其实这样做与直接传参已经没有区别, 所以这么做意义不大, 而且代码可读性降低)