debug_backtrace
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
debug_backtrace - 역추적 생성
설명
debug_backtrace(int $options
= DEBUG_BACKTRACE_PROVIDE_OBJECT, int $limit
= 0): array
debug_backtrace()는 PHP 역추적을 생성합니다.
매개변수
options
- 이 매개변수는 다음 옵션에 대한 비트마스크입니다.
debug_backtrace() 옵션
DEBUG_BACKTRACE_PROVIDE_OBJECT "객체" 인덱스를 채울지 여부입니다. DEBUG_BACKTRACE_IGNORE_ARGS 메모리를 절약하기 위해 "args" 인덱스와 모든 함수/메서드 인수를 생략할지 여부입니다. limit
- 이 매개변수를 사용하여 반환되는 스택 프레임 수를 제한할 수 있습니다. 기본적으로(
limit
=0
) 모든 스택 프레임을 반환합니다.
반환 값
연관 배열의 배열을 반환합니다. 반환 가능한 요소는 다음과 같습니다.
debug_backtrace()에서 가능한 반환 요소
Name | Type | Description |
---|---|---|
function | string | 현재 함수 이름. See also __FUNCTION__. |
line | int | 현재 줄 번호. See also __LINE__. |
file | string | 현재 파일 이름. See also __FILE__. |
class | string | 현재 class 이름. See also __CLASS__ |
object | object | 현재 object입니다. |
type | string | 현재 호출 유형입니다. 메서드를 호출하면 "->"가 반환됩니다. 정적 메서드를 호출하면 "::"가 반환됩니다. 함수를 호출하면 아무 것도 반환되지 않습니다. |
args | array | 함수 내부에 있는 경우 함수 인수를 나열합니다. 포함된 파일 내부에 있는 경우 포함된 파일 이름이 나열됩니다. |
Examples
예제 #1 debug_backtrace() 예제
<?php
// filename: /tmp/a.php
function a_test($str)
{
echo "\nHi: $str";
var_dump(debug_backtrace());
}
a_test('friend');
?>
<?php
// filename: /tmp/b.php
include_once '/tmp/a.php';
?>
/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" } }
기타
- trigger_error() - user-level error/warning/notice 메시지 생성
- debug_print_backtrace() - 역추적을 출력합니다.