Maison  >  Article  >  développement back-end  >  Résumé des techniques d'utilisation des fonctions anonymes en PHP (avec code)

Résumé des techniques d'utilisation des fonctions anonymes en PHP (avec code)

不言
不言avant
2018-11-17 16:53:452633parcourir

Ce que cet article vous apporte est un résumé des techniques d'utilisation des fonctions anonymes PHP (avec du code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Les fonctions anonymes en PHP, également appelées fonctions de fermeture, permettent de spécifier une fonction sans nom. Attribuez la fonction anonyme à la variable et appelez-la via la variable. Un exemple simple :

<?php
$anonymousFunc = function($username){
    echo $username;
  };
  $anonymousFunc("乔峰!");

Astuce 1 : sera. anonyme La fonction peut être placée dans une fonction normale, ou la fonction anonyme peut être renvoyée : Cela forme une simple fermeture

<?php
function closureFunc(){
    $anonymousFunc = function(){
        echo "乔峰!";
    };
    $anonymousFunc();//普通函数内部调用了匿名函数
}
closureFunc();//输出: 乔峰

Astuce 2 Référencez des variables locales dans des fonctions anonymes (ici vous devez citer un mot-clé PHP)

<?php
function closureFunc(){
    $username = &#39;乔峰&#39;;
    $anonymousFunc = function() use($username){
        echo $username;
    };
    $anonymousFunc();//此处调用了匿名函数
}
closureFunc();//输出: 乔峰

Astuce 3 Retour fonctions anonymes dans les fonctions ordinaires

<?php
function closureFunc(){
    $username = &#39;乔峰&#39;;
    $anonymousFunc = function() use($username){
        echo $username;
    };
    return $anonymousFunc;// 函数返回匿名函数
}
$func = closureFunc();
$func(); //然后调用$func()

Astuce 4 Renvoyer les fonctions anonymes et transmettre les paramètres aux fonctions anonymes

<?php
function closureFunc(){
    $username = &#39;乔峰&#39;;
    $anonymousFunc = function($lover,$skill) use($username){
        echo $username.$lover.$skill;
    };
    return $anonymousFunc;
}
$func = closureFunc();
$func("阿朱","擒龙手");//乔峰阿朱擒龙手

Astuce 5Utilisez des fermetures pour modifier les valeurs des variables référencées par le contexte

<?php

function closureFunc(){
    $number = 100;
    $anonymousFunc = function() use($number) {
        $number++;
        echo $number.PHP_EOL;
    };
    echo $number.PHP_EOL;
    return $anonymousFunc;
}
$func = closureFunc();// 这里输出1,直接调用本函数的 echo $number.PHP_EOL; 即为100
$func();// 调用函数的返回值 $anonymousFunc  $number++ 即为101
$func(); //101
$func();//101

Entrée ci-dessus les résultats et constatez que les deux func() suivantes renvoient toutes deux 101 et que les valeurs n'ont pas changé. Si vous souhaitez accumuler l'effet ++, ajoutez simplement un symbole de référence & (les modifications au sein de la fonction anonyme affecteront également les fonctions externes. variables). Modifié :

<?php

function closureFunc(){
    $number = 100;
    $anonymousFunc = function() use(&$number) {
        $number++;
        echo $number.PHP_EOL;
    };
    echo $number.PHP_EOL;
    return $anonymousFunc;
}
$func = closureFunc();// 这里输出1,直接调用本函数的 echo $number.PHP_EOL; 即为100
$func();// 调用函数的返回值 $anonymousFunc  $number++ 即为101
$func(); //102
$func();//103

Astuce 6 Passer les fonctions anonymes en paramètres

<?php
//定义普通函数,anonymousFunc 为参数变量
function myFunc($anonymousFunc){
    $anonymousFunc("乔峰");
}
myFunc(function($username){ //这里调用普通函数,并把 匿名函数作为参数 传给了myFunc中的$anonymousFunc
    echo $username;
});//输出 乔峰

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
Article précédent:que signifie le bugArticle suivant:que signifie le bug