Comment implémenter les rappels en PHP ?

青灯夜游
Libérer: 2023-04-05 15:34:01
original
5565 Les gens l'ont consulté

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;);
  
?>
Copier après la connexion

Sortie :

这个是text1
Copier après la connexion

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;)); 
  
?>
Copier après la connexion

Sortie :

子级函数输出
子级函数输出
父级函数输出
Copier après la connexion

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); 
  
?>
Copier après la connexion

Sortie :

PHP中文网 
__invoke()函数
Copier après la connexion

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);
?>
Copier après la connexion

Sortie :

PHP
Python
MySQL
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!