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!