Maison >développement back-end >tutoriel php >Une brève introduction aux fonctions anonymes en php
Fonctions anonymes (Fonctions anonymes), également appelées fermetures, permettent de créer temporairement une fonction sans nom spécifié. Le plus souvent utilisé comme valeur du paramètre (callback) de la fonction callback. Bien entendu, il existe également d’autres applications.
Les fonctions anonymes sont actuellement implémentées via la classe Closure.
La fonction de fermeture peut également être utilisée comme valeur de la variable . PHP convertira automatiquement cette expression en une instance d'objet de la classe intégrée Closure. La méthode d'affectation d'un objet de fermeture à une variable est la même que la syntaxe d'affectation de variable ordinaire, et un point-virgule doit être ajouté à la fin :
Cet article présente principalement les fermetures en PHP (Fonction Anonyme ) Brève analyse, cet article donne un exemple d'utilisation et un test d'efficacité d'exécution. Les amis qui en ont besoin peuvent se référer à
Méthode d'utilisation
Besoin d'ajuster EntierLa valeur dans l'élément de groupe
$data = range(0, 100);//想要每个元素的值都加上.html的后缀 $suffix = '.html'; function makeSuffix($str, $suffix) { return $str . $suffix; } $new_data = array_map(function($item) use ($suffix) { return makeSuffix($item, $suffix); }, $data);
La structure de l'élément doit être modifiée
$arr = [ [ 'id'=>'', 'name'=>'', 'create_time'=>'', ], ]; $new_data = array_map(function($item) { return ['id'=>$item['id'],'name'=>$item['name']]; }, $arr);//Si vous utilisez
foreach, vous devez également créer un temps zéro variable dans la boucle et mettez le requis La valeur est attribuée à cette variable
Efficacité d'exécution
$data = range(0, 50000) //1 foreach ($data as &$value) { $value = makeSuffix($value, $suffix); } //2 foreach ($data as $value) { $new[] = makeSuffix($value, $suffix); } //3 array_map(function($item) use ($suffix) { return makeSuffix($item, $suffix); }, $data);Après 5 exécutions, en regardant les résultats 1 à 3, dans la plupart des cas, le temps d'exécution augmente de manière séquentielle. L'un des temps de résultat d'exécution est le suivant
<.>
Le code est le suivant :
1:0.0260009765625 2:0.038002014160156 3:0.047003030776978Conclusion
Le code de fermeture est relativement élégant, mais la logique est facile à confondre, et son L'efficacité d'exécution est relativement faible par rapport aux autres méthodes, elle doit donc être utilisée avec prudence. Il est recommandé de l'utiliser lorsque la structure du code est désordonnée et doit être encapsulée.
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!