Maison  >  Article  >  développement back-end  >  Comment créer une fonction de fermeture de la fonction PHP ?

Comment créer une fonction de fermeture de la fonction PHP ?

WBOY
WBOYoriginal
2024-04-10 10:33:02865parcourir

Une fonction de fermeture en PHP est une fonction anonyme imbriquée dans une autre fonction qui peut accéder aux variables de la fonction externe. Le mot-clé use peut être utilisé pour accéder à des variables externes dans la fonction de fermeture, qui peuvent être appliquées dans des scénarios réels où des remises doivent être appliquées à chaque élément de la liste.

PHP 函数的闭包函数如何创建?

Fonctions de fermeture dans les fonctions PHP

Une fonction de fermeture est une fonction anonyme imbriquée dans une autre fonction qui peut accéder aux variables de la fonction externe, même si la fonction externe est revenue. Les fonctions de fermeture sont très utiles en PHP car elles permettent de créer des blocs de code réutilisables et de maintenir l'accès à l'environnement externe.

Création d'une fonction de fermeture

Pour créer une fonction de fermeture en PHP, utilisez le mot-clé function, suivi d'un nom et d'une liste d'arguments facultatifs : function 关键字,后跟一个可选的名称和参数列表:

$closure = function($arg1, $arg2) {
    // 函数体
};

闭包函数中的变量范围规则如下:

  • 闭包函数可以访问在其定义位置作用域中声明的所有变量,包括局部变量和参数。
  • 闭包函数不能访问它嵌套在其中的函数之外声明的变量,除非这些变量在闭包函数中被显式地声明为 use

使用 use 关键字

use

function outerFunction($arg1) {
    $outerVar = '外部变量';

    $closure = function() use ($arg1, $outerVar) {
        // 闭包函数可以访问 $arg1 和 $outerVar
    };
}

Variables dans les fonctions de fermeture Les règles de portée sont comme suit :

  • Une fonction de fermeture peut accéder à toutes les variables déclarées dans le périmètre où elle est définie, y compris les variables et paramètres locaux.
  • Une fonction de fermeture ne peut pas accéder aux variables déclarées en dehors de la fonction dans laquelle elle est imbriquée, à moins que ces variables ne soient explicitement déclarées comme use dans la fonction de fermeture.
Utilisez le mot-clé use

Le mot-clé use est utilisé pour introduire des variables externes dans la fonction de fermeture. Par exemple :

function applyDiscount($list, $discountPercentage) {
    // 创建闭包函数来计算折扣
    $discountClosure = function($item) use ($discountPercentage) {
        return $item - ($item * ($discountPercentage / 100));
    };

    // 将折扣闭包函数应用于列表中的每个元素
    return array_map($discountClosure, $list);
}
Exemple pratique

🎜🎜Supposons que vous deviez créer une fonction qui applique une remise à chaque élément d'une liste. Pour cela, vous pouvez créer une fonction de clôture pour calculer le montant de la remise : 🎜
function outerFunction($arg1) {
    $outerVar = '外部变量';

    $closure = function() use ($arg1, $outerVar) {
        // 闭包函数可以访问 $arg1 和 $outerVar
        echo "arg1: $arg1<br>";
        echo "outerVar: $outerVar<br>";
    };

    // 调用闭包函数
    $closure();
}

applyDiscount([10, 20, 30], 10); // [9, 18, 27]
🎜🎜Code complet : 🎜🎜rrreee

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