Heim  >  Artikel  >  Backend-Entwicklung  >  Wie übergebe ich Klassenmethoden als Rückrufe in PHP?

Wie übergebe ich Klassenmethoden als Rückrufe in PHP?

Linda Hamilton
Linda HamiltonOriginal
2024-10-19 21:37:02246Durchsuche

How to Pass Class Methods as Callbacks in PHP?

Klassenmethoden als Rückrufe in PHP verwenden

Hintergrund:

Oft benötigen Sie möglicherweise um Klassenmethoden als Rückrufe zu übergeben, die in externen Kontexten ausgeführt werden sollen. In diesem Leitfaden werden die Techniken erläutert, um dies in PHP zu erreichen.

Klassenmethoden als Rückrufe übergeben

Es gibt mehrere Ansätze, Klassenmethoden als Rückrufe zu übergeben:

1. Verwenden eines Arrays:

  • Für nicht statische Methoden erstellen Sie ein Array mit dem Objekt an Index 0 und dem Methodennamen an Index 1.
  • Beispiel: $this- >processSomething([$this, 'myCallback']);

2. Statische Klassennamen verwenden:

  • Verwenden Sie für statische Methoden den Klassennamen anstelle eines Objekts im Array.
  • Beispiel: $this->processSomething([__CLASS__ , 'myStaticCallback']);

3. Verwenden von Klassenkonstanten und PHP 5.2.3:

  • Ab PHP 5.2.3 können Sie die Klassenkonstante self gefolgt vom statischen Methodennamen ohne Array verwenden.
  • Beispiel: $this->processSomething(self::myStaticCallback);

4. Verwenden von PHP 5.5.0-Klassenreferenzen:

  • In PHP 5.5.0 und höher können Sie die MyClass::class-Syntax verwenden, um auf die Klasse und ihre Methoden zu verweisen.
  • Beispiel: $this->processSomething([MyClass::class, 'myStaticCallback']);

5. Übergabe globaler PHP-Funktionen (nicht anwendbar):

  • Globale PHP-Funktionen können direkt als Zeichenfolgen übergeben werden.
  • Beispiel: $this->processSomething('some_global_php_function') ;

Hinweis zu statischen und Instanzmethoden:

  • Nur ​​Instanzmethoden erfordern eine Objektinstanz im Array. Statische Methoden können ohne Objekt verwendet und direkt als Klassenreferenz übergeben werden.
  • Für nicht statische Methoden können Sie anstelle der Objektinstanz auch ein Array mit einem object_id-Schlüssel übergeben. Dies ist nützlich, wenn Rückrufe serialisiert werden.

Das obige ist der detaillierte Inhalt vonWie übergebe ich Klassenmethoden als Rückrufe in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn