PHP debug_backtrace() 함수는 역추적을 생성합니다
이 함수는 연관 배열을 반환합니다.
<code>下面是可能返回的元素 </code>
function | 字符串 | 当前的函数名 |
---|---|---|
line | 整数 | 当前的行号 |
file | 字符串 | 当前的文件名 |
object | 对象 | 当前对象 |
type | 字符串 | 当前的调用类型,可能的调用: 返回: “->” - 方法调用返回: “::” - 静态方法调用返回 nothing - 函数调用 |
args | 数组 | 如果在函数中,列出函数参数。如果在被引用的文件中,列出被引用的文件名 |
예제 1의 경우:
<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>
인스턴스 1의 출력 결과는 다음과 같습니다.
안녕하세요 이것은 테스트 함수입니다.
배열( [0] => 배열(
[파일] => D:wwwMyProjecttestindex4.php
[줄] => 52
[함수] => 테스트
[args] => 배열 ( [0] => Hello 개체 ( [var:Hello:private] => A [var2] => B [var3:protected] => C ) ) )
참고: 여기서는 file, line, function, args의 4개 매개변수만 출력됩니다.
예제 2의 경우:
<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>
출력 예제 2의 결과는 다음과 같습니다.
안녕하세요 테스트 함수입니다
배열( [0] => 배열(
[파일] => D:wwwMyProjecttestindex4.php
[행] => 54
[함수] => 테스트
[수업] => 안녕하세요
[객체] => Hello 객체( [var:Hello:private] => A [var2] => B [var3:protected] => C )
[유형] => ->
[args] => 배열 ( [0] => Hello 개체 ( [var:Hello:private] => A [var2] => B [var3:protected] => C ) ) )
참고: 모든 매개변수가 여기에 출력됩니다. 즉, file, line, function, class, object, type, args