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

FunktionSchnurName der Funktion, in der die Funktion debug_backtrace() aufgerufen wird.
Linieganze ZahlAktuelle Zeilennummer des Funktionsaufrufs.
DateiSchnurName der Datei, in der die Funktion debug_backtrace() aufgerufen wurde.
KlasseSchnurName der Klasse, in der die Funktion debug_backtrace() aufgerufen wurde.
ObjektObjektName des Objekts, das verwendet wurde, um die Mitgliedsfunktion aufzurufen, in der die Funktion debug_backtrace() vorhanden ist.
TypSchnurDie 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.
ArgumenteReiheListe 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);
  
?>
Ausgabe

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();
?>
Ausgabe
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