debug_backtrace

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

debug_backtraceErzeugt eine Ablaufverfolgung

Beschreibung

debug_backtrace(int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT, int $limit = 0): array

debug_backtrace() erzeugt eine PHP-Ablaufverfolgung.

Parameter-Liste

options

Dieser Parameter ist eine Bitmaske für die folgenden Optionen:

debug_backtrace()-Optionen
DEBUG_BACKTRACE_PROVIDE_OBJECT Legt fest, ob der "object"-Index befüllt werden soll.
DEBUG_BACKTRACE_IGNORE_ARGS Legt fest, ob der "args"-Index, welcher alle Funktions- oder Methodenargumente enthält, ausgelassen werden soll, um Arbeitsspeicher zu sparen.

Hinweis:

Es gibt vier mögliche Kombinationen:

debug_backtrace()-Optionen
debug_backtrace() Füllt beide Indizes
debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT)
debug_backtrace(1)
debug_backtrace(0) Lässt den Index "object" weg und belegt den Index "args".
debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS) Lässt die Indizes "object" und "args" weg.
debug_backtrace(2)
debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT|DEBUG_BACKTRACE_IGNORE_ARGS) Belegt den Index "object" und lässt den Index "args" weg.
debug_backtrace(3)

limit

Dieser Parameter kann benutzt werden, um die Anzahl an zurückgegebenen Stackframes zu limitieren. Standardmäßig (limit=0) werden alle Stackframes zurückgegeben.

Rückgabewerte

Gibt ein assoziatives Array zurück. Als zurückgegebene Arrayelemente von debug_backtrace() sind möglich:

Mögliche Rückgabewerte von debug_backtrace()
Name Typ Beschreibung
function string Der Name der aktuell ausgeführten Funktion. Siehe auch __FUNCTION__.
line int Die aktuelle Zeilennummer. Siehe auch __LINE__.
file string Der aktuelle Dateiname. Siehe auch __FILE__.
class string Der aktuelle Name der Klasse. Siehe auch __CLASS__.
object object Das aktuelle Objekt.
type string Der aktuelle Typ des Aufrufs. Falls der Aufruf in einer Methode erfolgte, wird "->" zurückgegeben. Falls der Aufruf aus einer statischen Funktion erfolgte, wird "::" zurückgegeben, und falls der Aufruf aus einer Funktion erfolgte, wird nichts zurückgegeben.
args array Falls der Aufruf aus einer Funktion erfolgte, werden hier die Funktionsargumente aufgelistet. Falls der Aufruf aus einer eingebundenen Datei erfolgte, werden die Namen der Include-Dateien angegeben.

Beispiele

Beispiel #1 debug_backtrace()-Beispiel

<?php
// Dateiname: /tmp/a.php

function a_test($str)
{
echo
"\nHi: $str";
var_dump(debug_backtrace());
}

a_test('friend');
?>

<?php
// Dateiname: /tmp/b.php
include_once '/tmp/a.php';
?>

Ähnliche Ergebnisse wie die folgenden beim Aufruf von /tmp/b.php:

Hi: friend
array(2) {
[0]=>
array(4) {
    ["file"] => string(10) "/tmp/a.php"
    ["line"] => int(10)
    ["function"] => string(6) "a_test"
    ["args"]=>
    array(1) {
      [0] => &string(6) "friend"
    }
}
[1]=>
array(4) {
    ["file"] => string(10) "/tmp/b.php"
    ["line"] => int(2)
    ["args"] =>
    array(1) {
      [0] => string(10) "/tmp/a.php"
    }
    ["function"] => string(12) "include_once"
  }
}

Siehe auch