Une brève introduction aux fonctions anonymes en php

怪我咯
Libérer: 2023-03-13 18:04:02
original
1434 Les gens l'ont consulté

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);
Copier après la connexion

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);
Copier après la connexion
//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);
Copier après la connexion
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
Copier après la connexion
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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal