Avatar ·

什么是 PHP 中的闭包(closure)以及为什么需要 use 操作符?

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

什么是闭包