PHP debug_backtrace() Funktion
Die Funktion debug_backtrace() ist eine eingebaute Funktion in PHP, die im Allgemeinen von Programmierern beim Debuggen verwendet wird. Die Hauptaufgabe der Funktion debug_backtrace() besteht darin, den PHP-Backtrace zu generieren, dh den Stack-Trace zu untersuchen. Es gibt ein Array von assoziierten Arrays des Backtrace-PHP-Codes zurück. Alle möglichen zurückgegebenen Elemente dieser Funktion sind –
Name | Typ | Beschreibung |
Funktion | Schnur | Name der Funktion, in der die Funktion debug_backtrace() aufgerufen wird. |
Linie | ganze Zahl | Aktuelle Zeilennummer des Funktionsaufrufs. |
Datei | Schnur | Name der Datei, in der die Funktion debug_backtrace() aufgerufen wurde. |
Klasse | Schnur | Name der Klasse, in der die Funktion debug_backtrace() aufgerufen wurde. |
Objekt | Objekt | Name des Objekts, das verwendet wurde, um die Mitgliedsfunktion aufzurufen, in der die Funktion debug_backtrace() vorhanden ist. |
Typ | Schnur | Die Art des aktuellen Anrufs . Wenn der aktuelle Aufruftyp ein Methodenaufruf ist, wird „->“ zurückgegeben. Wenn es sich um einen statischen Methodenaufruf handelt, wird „::“ zurückgegeben, und wenn es sich um einen Funktionsaufruf handelt, wird nichts zurückgegeben. |
Argumente | Reihe | Liste der in der Funktionsdefinition vorhandenen Argumente. Wenn die Funktion debug_backtrace() innerhalb der Datei verwendet wird, werden alle darin enthaltenen Dateien zurückgegeben. |
Syntax:
array debug_backtrace(int $options, int $limit);
Hier sind die beiden Parameter $options und $limit optional und vom Typ Integer. Der Parameter $option wird für die Bitmaske verwendet und $limit kann verwendet werden, um die Anzahl der zu druckenden Stapelrahmen zu begrenzen. Der Standardwert für $limit ist auf Null gesetzt.
Beispiel: In diesem Beispiel haben wir eine Funktion erstellt, die die Summe zweier Eingabeparameter zurückgibt, und darin wurde die Funktion debug_backtrace() verwendet. Beim Drucken der Ausgabe wird zuerst die Summe der Eingabeparameter angezeigt und dann der Backtrace des Codes gedruckt.
PHP
<?php function sum($a, $b) { echo $a + $b . "\n\n"; var_dump(debug_backtrace()); } sum(10,2); ?>
12 Array(1) { [0]=> Array(4) { ["Datei"]=> string(42) "/home/2228b7c9e401174a5f773007cd840e32.php" ["Linie"]=> int(9) ["Funktion"]=> Zeichenfolge (3) "Summe" ["Argumente"]=> Array(2) { [0]=> int(10) [1]=> int(2) } } }
Beispiel 2: In diesem Beispiel wurde das Konzept der debug_backtrace()-Funktion innerhalb der Klasse zusammen mit dem Konzept der Rekursion implementiert, um die Rückverfolgung zu überprüfen. In diesem Beispiel wurden zwei Klassen, dh BaseClass und DerivedClass, zusammen mit ihren Konstruktoren erstellt und innerhalb des Konstruktors von BaseClass wurde debug_backtrace() aufgerufen. Die erzeugte Ausgabe, dh die Rückverfolgung für diesen Code, besteht entsprechend aus allen in der obigen Tabelle erwähnten Elementen.
PHP
<?php class BaseClass { public function __construct() { $this->_child = new DerivedClass($this); var_dump(debug_backtrace()); } } class DerivedClass { public function __construct(BaseClass $d) { $this->_parent = $d; } } $obj = new BaseClass(); ?>
Array(1) { [0]=> Array(7) { ["Datei"]=> string(42) "/home/ecdb752d3b6ec8ba97e6db84c42a5f2f.php" ["Linie"]=> int(18) ["Funktion"]=> string(11) "__konstruieren" ["Klasse"]=> string(9) "Basisklasse" ["Objekt"]=> Objekt(Basisklasse)#1 (1) { ["_Kind"]=> Objekt (abgeleitete Klasse)#2 (1) { ["_Elternteil"]=> *REKURSION* } } ["Typ"]=> Zeichenfolge(2) "->" ["Argumente"]=> Array(0) { } } }
Referenz: https://www.php.net/manual/en/function.debug-backtrace.php