什么是 PHP 中的闭包(closure)以及为什么需要 use 操作符?
大家好!我开始学习 PHP,遇到了匿名函数和闭包的话题。匿名函数我似乎搞懂了,但当我学到闭包时,被 `use` 操作符卡住了。
这是我在文档中看到的代码:
```php
$message = "Hello, world!";
$greeting = function() use ($message) {
echo $message;
};
$greeting();
```
我明白这能工作,但我不明白为什么需要这个 `use`。为什么不能像普通函数那样直接在函数内部访问变量 `$message`?例如:
```php
function test() {
echo $message; // 为什么这样不行?
}
```
我还读到闭包可以“捕获”外部作用域的变量。这是什么意思?如果可以直接把变量作为参数传递,为什么还要用闭包?
请用通俗易懂的方式解释一下 PHP 中的闭包是什么,以及在什么情况下它确实有用。欢迎提供代码示例。提前感谢!
<<>>