调试技巧·回溯跟踪 ☛ debug_print_backtrace()的使用

<?php
// filename: demo.php
declare(strict_types=1);
ini_set('display_errors', 'On');
error_reporting(-1);

function a(): void
{
    b();
}

function b(): void
{
    c();
}

function c(): void
{
    ob_start(); // 打开输出控制缓冲
    debug_print_backtrace();
    echo ob_get_clean(); // 从缓冲区获取debug_print_backtrace()的内容,然后清空缓冲区
}

a();


//========== 总结 ==========//
// 1、debug_print_backtrace()和var_dump()一样,都是直接输出内容,所以不管要不要把这些内容写入文件,都应该使用ob_*()系列函数处理。



<?php
// filename: test.php
declare(strict_types=1);
ini_set('display_errors', 'On');
error_reporting(-1);

require_once __DIR__ . '/demo.php';
// #0 /tmp/demo.php(14): c()
// #1 /tmp/demo.php(9): b()
// #2 /tmp/demo.php(24): a()
// #3 /tmp/test.php(7): require_once('...')

Copyright © 2024 码农人生. All Rights Reserved