Heim >Backend-Entwicklung >PHP-Tutorial >So übergeben Sie Klassenmethoden als Rückrufe: Mechanismen und Techniken verstehen
In einigen Szenarien müssen Sie aus Effizienzgründen möglicherweise Klassenmethoden als Rückrufe an andere Funktionen übergeben Ausführung konkreter Aufgaben. Dieser Artikel führt Sie durch die verschiedenen Mechanismen, um dies zu erreichen.
Um eine Funktion als Rückruf zu übergeben, können Sie ihren Namen direkt als Zeichenfolge angeben. Diese Methode ist jedoch nicht auf Klassenmethoden anwendbar.
Klasseninstanzmethoden können als Rückrufe mithilfe eines Arrays mit dem Objekt als erstem Element und dem Methodennamen als übergeben werden zweite. Dieser Ansatz funktioniert sowohl innerhalb als auch außerhalb derselben Klasse.
<code class="php">// Inside the same class $this->processSomething([$this, 'myCallback']); $this->processSomething([$this, 'myStaticCallback']); // Outside the same class $myObject->processSomething([new MyClass(), 'myCallback']); $myObject->processSomething([new MyClass(), 'myStaticCallback']);</code>
Statische Klassenmethoden erfordern keine Objektinstanz. Sie können direkt als Array übergeben werden, das den Klassennamen und den Methodennamen enthält.
<code class="php">// Inside the same class $this->processSomething([__CLASS__, 'myStaticCallback']); // Outside the same class $myObject->processSomething(['\Namespace\MyClass', 'myStaticCallback']); $myObject->processSomething(['\Namespace\MyClass::myStaticCallback']); // PHP 5.2.3+ $myObject->processSomething([MyClass::class, 'myStaticCallback']); // PHP 5.5.0+</code>
Neben den genannten Methoden können Sie auch anonyme Funktionen als Callbacks übergeben, aber Dies erfordert möglicherweise Änderungen an Ihrer Codestruktur.
Das obige ist der detaillierte Inhalt vonSo übergeben Sie Klassenmethoden als Rückrufe: Mechanismen und Techniken verstehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!