Maison >développement back-end >tutoriel php >La différence réelle entre lambda et les fonctions régulières (en utilisant PHP)

La différence réelle entre lambda et les fonctions régulières (en utilisant PHP)

Susan Sarandon
Susan Sarandonoriginal
2025-01-30 00:22:09381parcourir

The Actual Difference Between Lambda and Regular Functions (Using PHP)

Le problème du contexte de la fonction

Lorsque nous passons la fonction en tant que paramètre, si nous devons utiliser une variable en dehors de la fonction, nous devons utiliser

Mots-clés.

use Ceci est courant dans la voie du groupe de Laravel ou Lumen.

Veuillez noter que l'utilisation de mots clés est nécessaire:

use Le code ci-dessus est tiré du document de Lumen. Si la fonction lambda (fonction Arrow) est utilisée pour réécrire ce code, toutes les autres variables en dehors de la fonction peuvent être utilisées à l'intérieur de la fonction.

<code class="language-php">$router->group(['prefix' => 'admin'], function() use ($router) {
    $router->get('users', function() {
        // 匹配 "/admin/users" URL
    });
});</code>
Réécriture de la fonction lambda

Veuillez noter que Ici, vous n'avez pas besoin d'utiliser Mot-clé

, le code est plus concis.

use Il s'agit de l'une des caractéristiques les plus importantes de la fonction lambda.

Autres situations
<code class="language-php">$router->group(['prefix' => 'admin'], fn() => (
    $router->get('users', fn() => (
        // 匹配 "/admin/users" URL
    ));
));</code>

Dans d'autres langues, il n'y a pas de mot-clé

, et la fonction ne connaît pas le contexte qui l'entoure. Dans ce cas, comment réaliser un comportement similaire?

Vous devez passer les variables en tant que paramètres à chaque fois, mais ce n'est vraiment pas ce que nous voulons. use

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn