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 = '乔峰'; $anonymousFunc = function() use($username){ echo $username; }; $anonymousFunc();//此处调用了匿名函数 } closureFunc();//输出: 乔峰
Astuce 3 Retour fonctions anonymes dans les fonctions ordinaires
<?php function closureFunc(){ $username = '乔峰'; $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 = '乔峰'; $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!