"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je utiliser efficacement les rappels en PHP ?

Comment puis-je utiliser efficacement les rappels en PHP ?

Publié le 2024-11-09
Parcourir:356

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 :

if (is_callable($cb2)) {
    $returnValue = call_user_func($cb2, $arg1, $arg2);
}

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 ex. ['Vendor\Package\Foo', '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 de « rappel » traditionnel.
  • Legacy create_function () crée une fonction globale et renvoie son nom. Utilisez plutôt des fonctions anonymes.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3