Heim >Backend-Entwicklung >PHP-Tutorial >PHP debug_backtrace-Funktion
PHP-Funktion debug_backtrace() generiert einen Backtrace
Diese Funktion gibt ein assoziatives Array zurück.
<code>下面是可能返回的元素 </code>
function | 字符串 | 当前的函数名 |
---|---|---|
line | 整数 | 当前的行号 |
file | 字符串 | 当前的文件名 |
object | 对象 | 当前对象 |
type | 字符串 | 当前的调用类型,可能的调用: 返回: “->” - 方法调用返回: “::” - 静态方法调用返回 nothing - 函数调用 |
args | 数组 | 如果在函数中,列出函数参数。如果在被引用的文件中,列出被引用的文件名 |
Zum Beispiel eins:
<code><span><span>class</span><span>Hello</span>{</span><span>private</span><span>$var</span>; <span>public</span><span>$var2</span>; <span>protected</span><span>$var3</span>; <span>public</span><span><span>function</span><span>__construct</span><span>(<span>$var</span>,<span>$var2</span>,<span>$var3</span>)</span>{</span><span>$this</span>-><span>var</span>=<span>$var</span>; <span>$this</span>->var2=<span>$var2</span>; <span>$this</span>->var3=<span>$var3</span>; } } <span><span>function</span><span>test</span><span>(Hello <span>$hello</span>)</span>{</span><span>echo</span><span>"Hi this is a test function"</span>.<span>"<br>"</span>; print_r(debug_backtrace()); } <span>$hello2</span>=<span>new</span> Hello(<span>'A'</span>,<span>'B'</span>,<span>'C'</span>); test(<span>$hello2</span>);</code>
Das Ausgabeergebnis von Instanz eins ist wie folgt:
Hallo, das ist eine Testfunktion
Array ( [0] => Array (
[Datei] => D:wwwMyProjecttestindex4.php
[Zeile] => 52
[Funktion] => testen
[args] => Array ( [0] => Hello Object ( [var:Hello:private] => A [var2] => B [var3:protected] => C ) ) )
Hinweis: Hier werden nur vier Parameter ausgegeben, nämlich: Datei, Zeile, Funktion, Argumente
Für Beispiel zwei:
<code><span><span>class</span><span>Hello</span>{</span><span>private</span><span>$var</span>; <span>public</span><span>$var2</span>; <span>protected</span><span>$var3</span>; <span>public</span><span><span>function</span><span>__construct</span><span>(<span>$var</span>,<span>$var2</span>,<span>$var3</span>)</span> {</span><span>$this</span>-><span>var</span>=<span>$var</span>; <span>$this</span>->var2=<span>$var2</span>; <span>$this</span>->var3=<span>$var3</span>; } <span><span>function</span><span>test</span><span>(Hello <span>$hello</span>)</span>{</span><span>echo</span><span>"Hi this is a test function"</span>.<span>"<br>"</span>; print_r(debug_backtrace()); } } <span>$hello2</span>=<span>new</span> Hello(<span>'A'</span>,<span>'B'</span>,<span>'C'</span>); <span>$hello2</span>->test(<span>$hello2</span>); </code>
Die Ausgabe Das Ergebnis von Beispiel zwei ist wie folgt:
Hallo, das ist eine Testfunktion
Array ( [0] => Array (
[Datei] => D:wwwMyProjecttestindex4.php
[Zeile] => 54
[Funktion] => testen
[class] => Hallo
[object] => Hello Object ( [var:Hello:private] => A [var2] => B [var3:protected] => C )
[Typ] => ->
[args] => Array ( [0] => Hello Object ( [var:Hello:private] => A [var2] => B [var3:protected] => C ) ) )
Hinweis: Hier werden alle Parameter ausgegeben, nämlich: Datei, Zeile, Funktion, Klasse, Objekt, Typ, Argumente