Maison  >  Article  >  développement back-end  >  Fonction de rappel de fonction PHP (3) Rappels de méthodes de fonctions et d'objets statiques

Fonction de rappel de fonction PHP (3) Rappels de méthodes de fonctions et d'objets statiques

伊谢尔伦
伊谢尔伦original
2017-05-13 11:27:203196parcourir

Instructions pour les rappels de méthode des fonctions et objets statiques de classe PHP

Dans les chapitres précédents, les fonctions globales (non définies dans aucun objet ou fonction de classe) déclarent et applique la fonction de rappel, mais ce sera différent s'il rencontre une méthode statique dans la classe de rappel ou une méthode ordinaire dans l'objet. La technologie orientée objet sera présentée en détail dans les chapitres suivants de ce livre, donc pour la méthode d'application présentée dans cette section, vous pourrez vous y référer si nécessaire dans des études et applications ultérieures. Que devons-nous faire si la méthode de rappel est une méthode statique d'une classe ou une méthode membre dans un objet ? Dans le chapitre précédent, nous avons présenté la fonction call_user_func_array() de la fonction de rappel de la fonction PHP. Nous pouvons revoir l'application de la fonction call_user_func_array(). Vous pouvez modifier le premier paramètre, la chaîne du nom de fonction, en un paramètre de type tableau.

Ensuite, déclarez une classe séparément et déclarez une méthode membre statique dans la classe. Utilisez les fonctions système pour appeler des méthodes membres statiques et des méthodes membres d’objet d’instance dans la classe.

Le code est le suivant :

<?php
//声明一个类demo,类中声明一个静态成员方法fun()
 class demo{
   static function fun($str1,$str2){
     echo "str1 = ".$str1;
     echo "<br>";
     echo "str2 = ".$str2;
   }
 }
//声明一个类test,类中声明一个静态成员方法fun()
 class test{
   function fun($str1,$str2){
     echo "str1 = ".$str1;
     echo "<br>";
     echo "str2 = ".$str2;
   }
 }
//使用系统函数call_user_func_array(),调用demo类中的静态成员方法fun()
call_user_func_array( array("demo","fun"), array("php.cn", "php中文网"));
echo "<br>------------------------<br>";
//使用系统函数call_user_func_array(),调用test类中的实例对象成员方法fun()
call_user_func_array( array(new test(),"fun"), array("thinkphp","php框架"))
?>
Description : Toutes les fonctions de rappel personnalisées implémentées à l'aide de la fonction call_user_func_array(), ou dans le système PHP. Toutes Les fonctions de rappel qui nous sont fournies peuvent utiliser des valeurs de type tableau dans le premier paramètre comme cette fonction, et deux éléments doivent être utilisés dans le tableau : Si vous appelez une méthode membre dans une classe, vous devez utiliser ce paramètre de tableau dans Spécifiez le premier élément en tant que chaîne de nom de classe et le deuxième élément en tant que chaîne de nom de méthode statique dans la classe ; si le nom de méthode membre dans l'objet est appelé, le premier élément de ce tableau est une référence à l'objet, le deuxième élément est la chaîne du nom de membre dans l'objet. Il n'y a aucun changement dans l'utilisation du deuxième paramètre de la fonction call_user_func_array().

Le format de description de la fonction de rappel est résumé comme suit, où

callback() représente toutes les fonctions de rappel :

1 Format du rappel global. function Comme indiqué ci-dessous :

callback("函数名称字符串")

2. Le format de la méthode membre statique dans la classe de rappel est le suivant :

callback(array("类名称字符串","类中静态方法名称字符串"))

3. Le format des méthodes membres dans l'objet de rappel est le suivant :

callback(array(对象引用,"对象中方法名称字符串"))
La fonction de rappel fournie par le système et les nôtres. Les fonctions de rappel définies sont toutes exactement les mêmes dans les méthodes d'appel.

À ce stade, La partie fonction de rappel de la fonction PHP a été introduite.


[Recommandations de tutoriel associées]

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. tutoriel vidéo

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