Maison  >  Article  >  développement back-end  >  Fonction de rappel de fonction PHP (2) fonction call_user_func_array()

Fonction de rappel de fonction PHP (2) fonction call_user_func_array()

伊谢尔伦
伊谢尔伦original
2017-05-12 11:31:262316parcourir

Fonction de rappel Passer une fonction en paramètre à la fonction appelée. Si un paramètre de type callback apparaît dans la description du format d'une fonction, la fonction est une fonction de rappel. Bien que vous puissiez utiliser des fonctions variables pour déclarer vos propres fonctions de rappel, l'implémentation la plus courante se fait via la fonction call_user_func_array() . Le chapitre précédent a présenté la déclaration et l'application des fonctions variables dans les fonctions de rappel PHP L'utilisation de fonctions variables pour transmettre un processus d'exécution défini par l'utilisateur à la fonction à utiliser a considérablement augmenté l'expansion des fonctions de fonction par l'utilisateur. fonction auto-définie à la fonction à utiliser. Cette section explique la fonction call_user_func_array() avec un exemple.

La fonction call_user_func_array() est une fonction intégrée à PHP. En fait, c'est aussi une fonction de rappel. :

mixed call_user_func_array( callback function, array param_arr)

Cette fonction a deux paramètres : le premier paramètre nécessite une chaîne car il utilise un rappel de pseudo-type, indiquant le nom de la fonction à appeler ; la liste des paramètres, selon l'ordre, elle sera transmise à la fonction à appeler. Déclarez une fonction dont la fonction est sortie et dont le but est de servir de fonction de rappel de la fonction.

L'exemple d'application de cette fonction est le suivant :

<?php
 // 声明一个函数fun(),功能是输出两个字符串,目的是作为call_user_func_array()函数的回调函数
 function fun($str1, $str2){
   echo "$str1 = ".$str1;
   echo "<br>";
   echo "$str2 = ".$str2;
 }
 //通过系统函数call_user_func_array()调用函数fun()
 call_user_func_array("fun",array("php.cn","php中文网"));
?>

Dans l'exemple ci-dessus, via le system La fonction call_user_func_array() appelle la fonction auto-définie fun() et transmet la chaîne de nom de la fonction fun() au premier paramètre de la fonction call_user_func_array(). Le deuxième paramètre nécessite un tableau. identique à la liste de paramètres et à l'arborescence de la fonction fun(). Parce que chaque valeur d'élément de ce paramètre de tableau sera transmise à la liste de paramètres de la fonction de rappel fun() dans l'ordre via la fonction call_user_func_array(). Nous pouvons donc modifier la fonction de rappel personnalisée implémentée via la fonction variable en fonction call_user_func_array().

Un exemple de son code est le suivant :

<?php
 //声明回调函数filter, 在0-10的整数中通过自定义条件过滤不要的数字
 function filter($fun){
   for($i=0; $i<=10; $i++){
     //使用系统函数call_user_func_array(),调用和变量$fun值相同的函数
     if(call_user_func_array($fun,array($i)))
       continue;
     echo $i.&#39;<br>&#39;;
   }
 }
?>

Dans cet exemple, à l'intérieur de la fonction personnalisée filter(), la position originale de la fonction variable est réécrite. La méthode d'appel de la fonction call_user_func_array() a été modifiée, mais la méthode d'application de la fonction filter() n'a pas changé.

Ce chapitre explique la fonction call_user_func_array() et son utilisation de la fonction de rappel php. Dans le chapitre suivant, nous présenterons la fonction statique de classe et le rappel de méthode objet de la fonction de rappel php.

【Tutoriels recommandés】

1. "php.cn Dugu Jiujian (4) - Tutoriel vidéo PHP "

2 . 🎜>Un ensemble complet de tutoriels vidéo sur la programmation PHP de l'entrée à la maîtrise

3

Tutoriels vidéo pratiques PHP.

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:
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