Qu'est-ce qu'une fermeture (closure) en PHP et à quoi sert l'opérateur use ?
Bonjour à tous ! J'ai commencé à étudier PHP et je suis tombé sur le sujet des fonctions anonymes et des fermetures. J'ai à peu près compris les fonctions anonymes, mais quand je suis arrivé aux fermetures, j'ai buté sur l'opérateur `use`.
Voici le code que j'ai vu dans la documentation :
```php
$message = "Hello, world!";
$greeting = function() use ($message) {
echo $message;
};
$greeting();
```
Je comprends que cela fonctionne, mais je ne comprends pas à quoi sert ce `use`. Pourquoi ne peut-on pas simplement accéder à la variable `$message` à l'intérieur de la fonction, comme dans les fonctions normales ? Par exemple :
```php
function test() {
echo $message; // Pourquoi cela ne fonctionne-t-il pas ?
}
```
J'ai aussi lu que les fermetures peuvent "capturer" des variables de la portée externe. Qu'est-ce que cela signifie ? Et pourquoi utiliser des fermetures si on peut simplement passer la variable comme argument ?
Expliquez-moi, s'il vous plaît, simplement ce qu'est une fermeture en PHP et dans quels cas elle est vraiment nécessaire. Les exemples de code sont les bienvenus. Merci d'avance !
<<>>