Maison  >  Article  >  développement back-end  >  Comment implémenter les rappels en PHP ?

Comment implémenter les rappels en PHP ?

青灯夜游
青灯夜游original
2019-03-13 15:43:415568parcourir

En PHP, le rappel est un objet/référence de fonction de type appelable ; les variables de rappel (ou appelables) peuvent être utilisées comme fonctions, méthodes d'objet et méthodes de classe statique. Il existe de nombreuses façons d'implémenter les rappels. Cet article en présentera quelques-unes. J'espère qu'elles seront utiles à tout le monde. [Tutoriel vidéo recommandé : Tutoriel PHP]

Comment implémenter les rappels en PHP ?

1. Rappel standard

Exemple : utilisez call_user_func( ) la fonction appelle une fonction dont l'argument est le nom de la fonction.

<?php 
header("content-type:text/html;charset=utf-8");
function text1(){
    echo &#39;这个是text1<br>&#39;;
};
call_user_func(&#39;text1&#39;);
  
?>

Sortie :

这个是text1

Explication : Une fonction call_user_func() est appelée, puis la fonction call_user_func() rappelle la fonction text1() pendant l'exécution.

2. Rappel de méthode de classe statique

Exemple : utilisez la fonction call_user_func() pour appeler une méthode de classe statique, où le paramètre est un paramètre contenant le nom de la classe et la méthode à appeler tableau.

<?php 
header("content-type:text/html;charset=utf-8");
class Demo { 
  
    // 用于输出字符串的函数
    static function someFunction() { 
        echo "父级函数输出 <br>"; 
    } 
} 
  
class Article extends Demo { 
  
    // 用于输出字符串的函数 
    static function someFunction() { 
        echo "子级函数输出 <br>"; 
    }    
} 
  
// 静态类方法回调
call_user_func(array(&#39;Article&#39;, &#39;someFunction&#39;)); 
  
call_user_func(&#39;Article::someFunction&#39;); 
  
// 相对静态类方法回调
call_user_func(array(&#39;Article&#39;, &#39;parent::someFunction&#39;)); 
  
?>

Sortie :

子级函数输出
子级函数输出
父级函数输出

3. Rappel de la méthode objet

Exemple : utilisez la fonction call_user_func() pour appeler la méthode objet. , où les paramètres sont un tableau contenant les variables d'objet et les noms de chaîne des méthodes à appeler.

<?php 
header("content-type:text/html;charset=utf-8");
class Demo { 
  
    // 输出字符串的函数
    static function someFunction() { 
        echo "PHP中文网 <br>"; 
    } 
  
    // 输出字符串的函数
    public function __invoke() { 
        echo "__invoke()函数<br>"; 
    } 
} 
  
// 类对象
$obj = new Demo(); 
  
// 对象方法调用
call_user_func(array($obj, &#39;someFunction&#39;)); 
  
call_user_func($obj); 
  
?>

Sortie :

PHP中文网 
__invoke()函数

4. Rappel de fermeture

Exemple : utilisez la fonction array_map() pour modifier le fermeture Une fonction de fermeture peut être rendue appelable en effectuant un appel standard ou en mappant une fonction de fermeture avec un tableau de paramètres valides donnés par la fonction, où les paramètres sont un tableau de la fonction de fermeture et de ses paramètres valides.

<?php 
header("content-type:text/html;charset=utf-8");
// 用于输出<br>
$print_function = function($string) { 
    echo $string."<br>"; 
}; 
  
// 字符串数组 
$string_array = array("PHP", "Python", "MySQL"); 
  
// 可调用闭包
array_map($print_function, $string_array);
?>

Sortie :

PHP
Python
MySQL

Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'apprentissage de chacun. Pour un contenu plus passionnant, vous pouvez prêter attention aux colonnes de didacticiels pertinentes du site Web PHP chinois ! ! !

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