O que é closure em PHP e para que serve o operador use?
Olá a todos! Comecei a estudar PHP e me deparei com o tema de funções anônimas e closures. Acho que entendi as funções anônimas, mas quando cheguei nas closures, tropecei no operador `use`.
Aqui está o código que vi na documentação:
```php
$message = "Hello, world!";
$greeting = function() use ($message) {
echo $message;
};
$greeting();
```
Eu entendo que isso funciona, mas não entendo para que serve esse `use`. Por que não posso simplesmente acessar a variável `$message` dentro da função, como em funções normais? Por exemplo:
```php
function test() {
echo $message; // Por que isso não funciona?
}
```
Também li que closures podem "capturar" variáveis do escopo externo. O que isso significa? E para que usar closures, se posso simplesmente passar a variável como argumento?
Expliquem, por favor, de forma simples, o que é uma closure em PHP e em quais casos ela é realmente necessária. Exemplos de código são bem-vindos. Desde já, obrigado!
<<>>