Maison développement back-end tutoriel php Comment transmettre des méthodes de classe comme rappels en PHP ?

Comment transmettre des méthodes de classe comme rappels en PHP ?

Oct 19, 2024 pm 09:37 PM

How to Pass Class Methods as Callbacks in PHP?

Utilisation des méthodes de classe comme rappels en PHP

Contexte :

Souvent, vous aurez peut-être besoin pour transmettre les méthodes de classe sous forme de rappels à exécuter dans des contextes externes. Ce guide explore les techniques pour y parvenir en PHP.

Passer des méthodes de classe en tant que rappels

Il existe plusieurs approches pour transmettre des méthodes de classe en tant que rappels :

1. Utilisation d'un tableau :

  • Pour les méthodes non statiques, créez un tableau avec l'objet à l'index 0 et le nom de la méthode à l'index 1.
  • Exemple : $this- >processSomething([$this, 'myCallback']);

2. Utilisation de noms de classe statiques :

  • Pour les méthodes statiques, utilisez le nom de classe au lieu d'un objet dans le tableau.
  • Exemple : $this->processSomething([__CLASS__ , 'myStaticCallback']);

3. Utilisation des constantes de classe et de PHP 5.2.3 :

  • À partir de PHP 5.2.3, vous pouvez utiliser la constante de classe self suivie du nom de la méthode statique sans tableau.
  • Exemple : $this->processSomething(self::myStaticCallback);

4. Utilisation des références de classe PHP 5.5.0 :

  • Dans PHP 5.5.0 et versions ultérieures, vous pouvez utiliser la syntaxe MyClass::class pour référencer la classe et ses méthodes.
  • Exemple : $this->processSomething([MyClass::class, 'myStaticCallback']);

5. Passage de fonctions PHP globales (non applicable) :

  • Les fonctions PHP globales peuvent être transmises directement sous forme de chaînes.
  • Exemple : $this->processSomething('some_global_php_function') ;

Remarque sur les méthodes statiques et d'instance :

  • Seules les méthodes d'instance nécessitent une instance d'objet dans le tableau. Les méthodes statiques peuvent être utilisées sans objet et transmises directement comme référence de classe.
  • Pour les méthodes non statiques, vous pouvez également transmettre un tableau avec une clé object_id au lieu de l'instance d'objet. Ceci est utile lors de la sérialisation des rappels.

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 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

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium) 11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium) Mar 03, 2025 am 10:49 AM

11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium)

Travailler avec les données de session Flash dans Laravel Travailler avec les données de session Flash dans Laravel Mar 12, 2025 pm 05:08 PM

Travailler avec les données de session Flash dans Laravel

Misque de réponse HTTP simplifié dans les tests Laravel Misque de réponse HTTP simplifié dans les tests Laravel Mar 12, 2025 pm 05:09 PM

Misque de réponse HTTP simplifié dans les tests Laravel

Introduction à l'API Instagram Introduction à l'API Instagram Mar 02, 2025 am 09:32 AM

Introduction à l'API Instagram

Construisez une application React avec un Laravel Back End: Partie 2, React Construisez une application React avec un Laravel Back End: Partie 2, React Mar 04, 2025 am 09:33 AM

Construisez une application React avec un Laravel Back End: Partie 2, React

Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST Mar 14, 2025 am 11:42 AM

Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST

12 meilleurs scripts de chat PHP sur Codecanyon 12 meilleurs scripts de chat PHP sur Codecanyon Mar 13, 2025 pm 12:08 PM

12 meilleurs scripts de chat PHP sur Codecanyon

Annonce de l'enquête sur la situation en 2025 PHP Annonce de l'enquête sur la situation en 2025 PHP Mar 03, 2025 pm 04:20 PM

Annonce de l'enquête sur la situation en 2025 PHP

See all articles