Comment puis-je utiliser efficacement les rappels en PHP ?

Susan Sarandon
Libérer: 2024-10-27 20:34:30
original
113 Les gens l'ont consulté

How Can I Use Callbacks Effectively in PHP?

Implémentation des rappels en PHP

Le terme « rappel » en PHP englobe à la fois les chaînes et les tableaux qui fonctionnent comme des pointeurs de fonction. En PHP 4, la syntaxe suivante est apparue :

  • $cb1 = 'someGlobalFunction';
  • $cb2 = ['ClassName', 'someStaticMethod'];
  • $cb3 = [$object, 'somePublicMethod'];

Bien que PHP 5.2.3 ait introduit une syntaxe appelable, les chaînes contenant une telle syntaxe ne peuvent pas être directement invoquées. La syntaxe héritée pour PHP 4 inclut :

  • $cb3 = array(&$object, 'somePublicMethod');

L'extrait de code suivant démontre une utilisation sûre des valeurs appelables :

<code class="php">if (is_callable($cb2)) {
    $returnValue = call_user_func($cb2, $arg1, $arg2);
}</code>
Copier après la connexion

Les versions PHP modernes prennent en charge l'invocation des trois premiers formats ci-dessus directement en tant que $cb(). De plus, call_user_func et call_user_func_array prennent en charge tous les formats présentés.

Remarques et mises en garde :

  • Les fonctions/classes avec espace de noms nécessitent des noms complets, par exemple. ['VendorPackageFoo', 'method'].
  • call_user_func ne prend pas en charge le passage d'objets non-objets par référence. Utilisez call_user_func_array ou $cb(); dans les versions PHP ultérieures.
  • Les objets avec une méthode __invoke() (y compris les fonctions anonymes) peuvent être utilisés comme rappels, mais ne sont généralement pas associés au terme traditionnel de « rappel ».
  • Legacy create_function () crée une fonction globale et renvoie son nom. Utilisez plutôt 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!

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
Derniers articles par auteur
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!