【发布时间】:2020-05-20 04:35:35
【问题描述】:
我了解 Lambda 和 Closure 函数所代表的含义,但我不了解 Closure 函数的必要性。
如果我们可以将变量传递给 Lambda 函数,那么对闭包函数有什么需求。看起来在调用函数时写变量名比写'use'然后定义它更容易。
例如,这两个将完全一样:
$string = 'string';
$lambda = function($string) {
echo $string;
};
$lambda($string);
$string = 'string';
$closure = function() use ($string) {
echo $string;
};
$closure();
...在我的理解中,第一个代码块是匿名(Lambda)函数,第二个是闭包。此外,更改函数内部的变量不会以两种方式影响函数外部的变量。
我发现了很多关于差异的问题,但没有一个解释了它的必要性。
谢谢你的回答。
【问题讨论】:
标签: php function lambda closures