Cette fois, je vous apporte une explication détaillée de l'utilisation des fonctions de rappel PHP et des fonctions anonymes Quelles sont les précautions pour l'utilisation des fonctions de rappel PHP et. fonctions anonymes, comme suit C'est un cas pratique, jetons-y un coup d'œil.
Les exemples de cet article décrivent les concepts et l'utilisation des fonctions de rappel PHP et des fonctions anonymes. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
1. Fonction de rappel
La fonction de rappel de PHP est en fait la même que celle de PHP. celui de C, Java et d'autres langages. La fonction de rappel est exactement la même. Lors de l'exécution du thread principal, elle saute soudainement pour exécuter la fonction de rappel définie
Après l'exécution de la fonction de rappel, il revient au thread principal pour gérer le processus suivant
Lorsque vous appelez la fonction de rappel en PHP, vous ne souhaitez pas utiliser directement le nom de la fonction comme paramètre de fonction comme C et Java, utilisez plutôt la chaîne. nom correspondant à la fonction en PHP à exécuter
1.1 Rappel sans paramètre
<?php //无参数回调 function callback(){ echo 'execute no parameters callback.<br/>'; } function main($callback){ echo 'execute main start.<br/>'; $callback(); echo 'execute main end.<br/>'; } main('callback'); //结果 ecute main start. execute no parameters callback. execute main end.
1.2 Fonction de rappel globale
<?php //全局函数回调 function callback($a,$b){ echo "$a<====>$b.<br/>"; } $func = 'callback'; call_user_func($func, 1,2); call_user_func_array($func, array(1,2)); //结果 1<====>2. 1<====>2.
1.3. rappel de méthode
<?php class Test{ //成员函数 function callback($a,$b){ echo "callback $a<====>$b.<br/>"; } public static function staticCallback($a,$b){ echo "staticCallback $a<====>$b.<br/>"; } } //非静态方法调用方式一 $test = new Test(); call_user_func(array($test, 'callback'), 1,2); call_user_func_array(array($test, 'callback'), array(1,2)); //非静态方法调用方式二 $func = 'callback'; $test->$func(7,9); //静态方法调用方式 call_user_func(array('Test', 'staticCallback'), 4,6); call_user_func_array(array('Test', 'staticCallback'), array(4,6)); call_user_func_array("Test::staticCallback", array(4,6)); //结果 callback 1<====>2. callback 1<====>2. callback 7<====>9. staticCallback 4<====>6. staticCallback 4<====>6. staticCallback 4<====>6.
2. Fonction anonyme
2.1 Les fonctions anonymes en PHP, également appelées fermetures, permettent de spécifier une fonction. sans nom. Les plus couramment utilisés sont les paramètres de la fonction de rappel valeur
<?php $closureFunc = function($str){ echo $str.'<br/>'; }; $closureFunc("hello world!"); //结果 hello world!
2.2, fermeture
2.2.1, transmission de paramètres et référencement de variables locales
<?php $closureFunc = function($name){ $sex = '男'; $func = function($age)use ($name,$sex){ echo "$name--$sex--$age<br/>"; }; $func(23); }; $func = $closureFunc("lvfk"); //结果 lvfk--男--23
2.2.2. Fonction de fermeture de retour
<?php $closureFunc = function($name){ echo 'closureFunc '; $sex = '男'; echo "$name+++$sex<br/>"; $func = function()use ($name,$sex){ echo "$name--$sex<br/>"; }; return $func; }; $func = $closureFunc("lvfk"); $func(); $func(); //结果 closureFunc lvfk+++男 lvfk--男 lvfk--男
2.2.3 La fermeture modifie la valeur du contexte et nécessite un passage de référence
<?php $closureFunc = function($name){ $age = 1; echo "$name+++$age<br/>"; $func = function()use ($name,&$age){ $age++; echo "$name--$age<br/>"; }; return $func; }; $func = $closureFunc("lvfk"); $func(); $func(); $func(); //结果 lvfk+++1 lvfk--2 lvfk--3 lvfk--4
PHP implémente directement la génération d'affiches publicitaires
PHP détermine si WeChat ou le navigateur est ouvert
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!