Heim >Backend-Entwicklung >PHP-Tutorial >Wie ermittelt man den Namen der aufrufenden Funktion in PHP?

Wie ermittelt man den Namen der aufrufenden Funktion in PHP?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-04 09:53:10203Durchsuche

How to Determine the Calling Function's Name in PHP?

Bestimmen des Namens der aufrufenden Funktion in PHP

Im Gegensatz zu Sprachen wie Java oder C bietet PHP keine speziell entwickelte integrierte Funktion um den Namen der aufrufenden Funktion oder Methode abzurufen. Es gibt jedoch Möglichkeiten, dies mit der Funktion debug_backtrace() zu erreichen.

Mit debug_backtrace()

Die Funktion debug_backtrace() gibt ein Array von Arrays mit Informationen über zurück der aktuelle und alle übergeordneten Funktionsaufrufe. Um den Namen der aufrufenden Funktion zu erhalten, greifen Sie auf das zweite Element im von debug_backtrace() zurückgegebenen Array zu. Dadurch erhalten Sie Informationen über die Funktion, die die aktuelle Funktion aufgerufen hat.

Beispiel:

echo debug_backtrace()[1]['function'];

Dieser Code gibt den Namen der aufrufenden Funktion aus.

Debug_backtrace() optimieren

Um die Leistung zu optimieren, können Sie die Anzahl der Stapel begrenzen Frames zurückgegeben und unnötige Informationen weggelassen. Der folgende Code gibt beispielsweise nur den Funktionsnamen zurück und lässt sowohl die Objekt- als auch die Args-Indizes weg:

echo debug_backtrace(!DEBUG_BACKTRACE_PROVIDE_OBJECT|DEBUG_BACKTRACE_IGNORE_ARGS,2)[1]['function'];

Abrufen der Klasse der aufrufenden Methode

Um die Klasse zu bestimmen der aufrufenden Methode müssen Sie den Objektindex im Array debug_backtrace() überprüfen. Dieser Index enthält ein Array mit Informationen über das Objekt, für das die Methode aufgerufen wurde.

Beispiel:

$className = debug_backtrace()[1]['object']['class'];

Durch die Kombination dieser Techniken können Sie beide abrufen Name und Klasse der aufrufenden Funktion oder Methode in PHP.

Das obige ist der detaillierte Inhalt vonWie ermittelt man den Namen der aufrufenden Funktion 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