查詢

debug_backtrace()函式—用法及示例

「 獲取當前呼叫堆疊的詳細資訊,用於除錯和錯誤追蹤 」


函式名: debug_backtrace()

適用版本: PHP 4, PHP 5, PHP 7

用法: debug_backtrace() 函式用於獲取當前呼叫堆疊的詳細資訊,用於除錯和錯誤追蹤。該函式返回一個陣列,陣列中每個元素都是一個關聯陣列,表示一幀的堆疊資訊。每個關聯陣列包含以下鍵值:

  1. "function": 呼叫該堆疊的函式名。
  2. "file": 包含該堆疊的檔名。
  3. "line": 呼叫該堆疊的行號。
  4. "class": 如果該函式是類的方法,則包含該類名。
  5. "object": 如果該函式是類的方法,包含該類的例項物件。
  6. "type": 如果該函式是類的方法,包含運算子 "->"。
  7. "args": 以陣列形式包含了函式呼叫傳遞的所有引數。

示例:

function foo() {
    bar();
}

function bar() {
    baz();
}

function baz() {
    $trace = debug_backtrace();

    foreach($trace as $frame) {
        echo $frame['function'] . ' called in ' . $frame['file'] . ' on line ' . $frame['line'] . PHP_EOL;
    }
}

foo();

輸出:

foo called in example.php on line 4
bar called in example.php on line 9
baz called in example.php on line 14

在上面的示例中,我們定義了三個函式 foo(),bar() 和 baz(),並呼叫了 foo() 函式。當呼叫 debug_backtrace() 函式時,在 baz() 函式中的 foreach 迴圈中,我們可以獲取到整個呼叫堆疊的詳細資訊,並列印出每一幀的函式名、檔名和行號。注意,呼叫堆疊是按照呼叫順序從最近到最遠的形式返回的。

補充糾錯
上一個函式: debug_zval_dump()函式
下一個函式: decbin()函式
熱門PHP函式
分享連結