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
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!