Maison  >  Article  >  développement back-end  >  Comment fonctionnent les fonctions anonymes PHP ?

Comment fonctionnent les fonctions anonymes PHP ?

王林
王林original
2024-04-11 09:18:021180parcourir

La fonction anonyme PHP est une fonction sans nom créée dynamiquement au moment de l'exécution. Ils sont implémentés en tant que cas particuliers de classes internes, peuvent accéder à des variables externes à l'aide du mot-clé use et ne peuvent pas être appelés de manière récursive.

PHP 匿名函数的工作原理是什么?

Comment fonctionnent les fonctions anonymes en PHP

Que sont les fonctions anonymes ?

Les fonctions PHP Anonymes sont des fonctions sans nom qui sont généralement transmises comme arguments à d'autres fonctions ou méthodes. Ils rendent le code plus propre et plus facile à gérer.

Syntaxe :

$callback = function (参数) {
    // 函数体
};

Comment ça marche ?

Les fonctions anonymes PHP sont créées dynamiquement au moment de l'exécution. Ils sont implémentés comme un cas particulier de classes internes.

Lorsque vous appelez une fonction anonyme, le moteur d'exécution créera une nouvelle classe interne qui hérite de la classe Closure PHP. Cette nouvelle classe possède les propriétés suivantes :

  • $this fait référence au scope dans lequel se trouve la fonction anonyme. $this 引用匿名函数所在的范围。
  • 调用时传递的参数。
  • 函数的闭包部分存储在 __invoke() 方法中。

实际案例:

让我们看看一个实际案例,其中我们使用匿名函数对数组中的元素应用 strtoupper() 函数:

$arr = ['apple', 'banana', 'cherry'];
$modifiedArr = array_map(function ($item) {
    return strtoupper($item);
}, $arr);

print_r($modifiedArr); // 输出 ['APPLE', 'BANANA', 'CHERRY']

在上面的示例中,我们创建了一个匿名函数,将每个元素转换为大写。然后我们将这个匿名函数作为 array_map() 函数的参数,该函数将其应用于数组中的每个元素。

注意事项:

  • 匿名函数可以访问外部作用域中的变量。
  • 它们可以使用 use
  • Paramètres transmis lors de l'appel.
  • La partie fermeture de la fonction est stockée dans la méthode __invoke().
🎜🎜🎜Cas réel : 🎜🎜🎜Voyons un cas réel où nous appliquons la fonction strtoupper() sur les éléments d'un tableau en utilisant la fonction anonyme : 🎜rrreee🎜Dans l'exemple ci-dessus, nous avons créé un fonction qui convertit chaque élément en majuscule. On passe ensuite cette fonction anonyme en argument à la fonction array_map(), qui l'applique à chaque élément du tableau. 🎜🎜🎜Remarque : 🎜🎜🎜🎜Les fonctions anonymes peuvent accéder aux variables dans la portée externe. 🎜🎜Ils peuvent capturer des variables externes et empêcher toute modification accidentelle à l'aide du mot-clé use. 🎜🎜Les fonctions anonymes ne peuvent pas être appelées de manière récursive. 🎜🎜

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