Maison  >  Article  >  développement back-end  >  Comment utiliser les fonctions et fermetures anonymes de PHP7 pour obtenir un traitement logique de code plus flexible ?

Comment utiliser les fonctions et fermetures anonymes de PHP7 pour obtenir un traitement logique de code plus flexible ?

WBOY
WBOYoriginal
2023-10-21 10:21:461381parcourir

Comment utiliser les fonctions et fermetures anonymes de PHP7 pour obtenir un traitement logique de code plus flexible ?

Comment utiliser les fonctions anonymes et les fermetures de PHP7 pour obtenir un traitement logique du code plus flexible ?

Avant PHP7, nous utilisions souvent des fonctions pour encapsuler un élément de logique spécifique, puis appelions ces fonctions dans le code pour implémenter des fonctions spécifiques. Cependant, nous pouvons parfois avoir besoin de définir des blocs logiques temporaires dans le code. Ces blocs logiques n'ont pas besoin de créer une fonction indépendante et, en même temps, nous ne voulons pas introduire trop de variables globales dans le code.

PHP7 introduit des fonctions et des fermetures anonymes, qui peuvent très bien résoudre ce problème. Une fonction anonyme est une fonction sans nom qui peut être définie et utilisée directement dans le code, tandis qu'une fermeture est une forme spéciale de fonction anonyme qui permet d'accéder à des variables externes à l'intérieur de la fonction.

Tout d’abord, regardons un exemple simple pour montrer comment utiliser les fonctions anonymes. Supposons que nous ayons un tableau qui stocke des nombres et que nous souhaitions mettre au carré chaque élément du tableau et le renvoyer. L'approche traditionnelle consiste à définir une fonction pour compléter cette fonction :

function square($array) {
  $result = [];
  foreach ($array as $num) {
    $result[] = $num * $num;
  }
  return $result;
}

$input = [1, 2, 3, 4, 5];
$output = square($input);
var_dump($output);

Le résultat de sortie est : [1, 4, 9, 16, 25].

Maintenant, nous pouvons utiliser une fonction anonyme pour simplifier ce code :

$input = [1, 2, 3, 4, 5];
$output = array_map(function($num) {
  return $num * $num;
}, $input);
var_dump($output);

Le même résultat : [1, 4, 9, 16, 25].

Dans cet exemple, nous utilisons la fonction array_map, qui accepte une fonction de rappel et un tableau comme paramètres. La fonction de rappel est en fait la fonction anonyme que nous avons définie, qui sera appliquée tour à tour à chaque élément du tableau et renverra un nouveau tableau. array_map函数,它接受一个回调函数和一个数组作为参数。回调函数实际上就是我们定义的匿名函数,它会被依次应用到数组的每个元素上,并返回一个新的数组。

除了简化代码之外,使用匿名函数还能更好地将逻辑块封装在一起,提高代码的可读性和可维护性。例如,假设我们有一个需要执行回调函数的类方法:

class MyClass {
  public function doSomething($callback) {
    // 执行一些其他的逻辑...
    $result = $callback();
    // 执行一些其他的逻辑...
    return $result;
  }
}

$obj = new MyClass();
$output = $obj->doSomething(function() use ($input) {
  return array_map(function($num) {
    return $num * $num;
  }, $input);
});
var_dump($output);

同样的输出结果: [1, 4, 9, 16, 25]。

在这个例子中,我们使用use关键字将外部的变量$input

En plus de simplifier le code, l'utilisation de fonctions anonymes peut mieux encapsuler les blocs logiques ensemble, améliorant ainsi la lisibilité et la maintenabilité du code. Par exemple, supposons que nous ayons une méthode de classe qui doit exécuter une fonction de rappel :

rrreee

Le même résultat : [1, 4, 9, 16, 25]. 🎜🎜Dans cet exemple, nous utilisons le mot-clé use pour introduire la variable externe $input dans la fonction anonyme. De cette façon, nous pouvons utiliser des variables externes à l'intérieur de la fonction anonyme pour obtenir un traitement logique de code plus flexible. 🎜🎜En résumé, les fonctions anonymes et les fermetures de PHP7 nous apportent une manière plus flexible et plus lisible d'écrire du code. En tirant parti des fonctions anonymes et des fermetures, nous pouvons définir des blocs logiques temporaires dans notre code sans introduire de variables globales supplémentaires. Qu'il s'agisse de simplifier le code ou de le rendre plus lisible et maintenable, les fonctions et fermetures anonymes sont des outils extrêmement utiles. J'espère que cet article vous aidera à comprendre et à utiliser les fonctions et fermetures anonymes en PHP7 ! 🎜

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