Maison >développement back-end >tutoriel php >Une brève introduction aux fonctions anonymes en php

Une brève introduction aux fonctions anonymes en php

怪我咯
怪我咯original
2017-07-12 14:42:221442parcourir

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

Le code est le suivant :

$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

Le code est le suivant :

$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

Le code est le suivant :

$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.047003030776978
Conclusion

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!

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