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

Comment implémenter les rappels en PHP ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-28 01:37:02757parcourir

How do you Implement Callbacks in PHP?

Implémentation de rappel en PHP

En PHP, les rappels, également appelés valeurs « appelables », permettent le référencement de fonctions ou de méthodes de classe pour une invocation future. Ils constituent un concept fondamental dans la programmation fonctionnelle et sont pris en charge depuis PHP 4.

Syntaxe de rappel

Les rappels peuvent être exprimés sous diverses formes :

  • String : La valeur de rappel est une chaîne représentant un nom de fonction.
  • Array : Un tableau spécifiant le nom de la classe et le nom de la méthode statique.
  • Objet et méthode : Un tableau contenant une instance d'objet et un nom de méthode.
  • Chaîne appelable : Une chaîne représentant un nom de classe suivi d'un nom de la méthode en utilisant la syntaxe PHP 5.2.3 (cependant, cette syntaxe ne peut pas être appelée directement).

Invocation de rappel

Les rappels peuvent être invoqués en toute sécurité en utilisant la fonction is_callable() pour vérifier leur validité. Si le rappel est appelable, il peut être invoqué en utilisant :

<code class="php">$returnValue = call_user_func($cb2, $arg1, $arg2);</code>

Invocation directe

Les versions PHP modernes prennent en charge l'invocation directe des trois premiers formats de rappel (chaîne, tableau , et objet avec méthode). On peut également utiliser call_user_func et call_user_func_array pour appeler tous les formats de rappel.

Notes supplémentaires

  • Les fonctions/classes avec espace de noms nécessitent des noms complets dans la chaîne de rappel.
  • call_user_func ne prend pas en charge le passage d'objets non-objets par référence.
  • Les objets avec une méthode __invoke() peuvent être utilisés comme rappels.
  • create_function() est obsolète et devrait être remplacé par des fonctions anonymes.

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