Maison > Article > développement back-end > Explication détaillée des fonctions anonymes et exemples de fermeture en php
1 : Fonction anonyme
La fonction anonyme en php, aussi appelée fonction de fermeture, permet de spécifier une fonction sans nom. La valeur la plus couramment utilisée est la valeur du paramètre de la fonction de rappel.
Définition de la fonction anonyme :
$closureFunc = function(){ .... }; eg: 把匿名函数赋值给变量,通过变量来调用 $closureFunc = function($str){ echo $str; }; $closureFunc("hello world!"); 输出: hello world!
2 : Clôture
2.1 Mettez la fonction anonyme dans une fonction normale, ou vous pouvez retourner la fonction anonyme, qui constitue Créé une simple fermeture
function closureFunc1(){ $func = function(){ echo "hello"; }; $func(); } closureFunc1();//输出: hello
2.2 Variables locales référencées dans les fonctions anonymes
function closureFunc2(){ $num = 1; $func = function(){ echo $num; }; $func(); } closureFunc2();//Notice: Undefined variable: num
Après la fonction ci-dessus est exécuté, une erreur d'avis sera signalée, indiquant que nous ne pouvons pas utiliser de variables locales dans des fonctions anonymes de cette manière. Pour le moment, nous devons citer un mot-clé PHP. Le code est le suivant
function closureFunc2(){ $num = 1; $func = function() use($num){ echo $num; }; $func(); } closureFunc2();//输出: 1
function closureFunc3(){ $num = 1; $func = function() use($num){ echo $num; }; return $func; }$func = closureFunc3(); //函数返回匿名函数$func(); //然后我们在用$func() 调用//输出: 1
function closureFunc4(){ $num = 1; $func = function($str) use($num){ echo $num; echo "\n"; echo $str; }; return $func; }$func = closureFunc4();$func("hello, closure4");//输出: //1 //hello, closure4
function closureFunc5(){ $num = 1; $func = function() use($num) { echo "\n"; $num++; echo $num; }; echo "\n"; echo $num; return $func; }$func = closureFunc5();$func();$func();$func();//输出: // 1 // 2 // 2 // 2
<.>
function closureFunc5(){ $num = 2; $func = function() use(&$num) { echo "\n"; $num++; echo $num; }; echo "\n"; echo $num; return $func; }$func = closureFunc5();$func();$func();$func();//输出: // 2 // 3 // 4 // 5
2.6 Passer des fonctions anonymes en paramètres
function callFunc($func){ $func("argv"); } callFunc(function($str){ echo $str; })//输出: // argv
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!