简单 php 代码跟踪调试实现

简单 php 代码跟踪调试实现

 

1
debug_backtrace:生成回溯
debug_print_backtrace:打印回溯

1. debug_backtrace ($options = DEBUG_BACKTRACE_PROVIDE_OBJECT, $limit = 0) {}

 

1
2
$backtrace = debug_backtrace();
var_dump($backtrace);

  

复制代码
<?php

// 订单资料
class Order{

    // 获取订单资料
    function get_order($order_id){
        $user_id = 1001;
        // 获取用户资料
        $oUser = new User;
        $user_info = $oUser->get_user($user_id);
        // 订单资料
        $order_info = array(
            'order_id' => $order_id,
            'order_name' => 'my order',
            'user_info' => $user_info,
        );
        return $order_info;
    }
}

class User{
    // 获取用户资料
    function get_user($user_id){
        // 获取用户讯息
        $oMessage = new Message;
        $user_message = $oMessage->get_message($user_id);
        $user_info = array(
                'user_id' => $user_id,
                'name' => 'fdipzone',
                'message' => $user_message
        );
        return $user_info;
    }
}

class Message{
    // 获取用户讯息
    function get_message($user_id){
        $message = array(
            array('id'=>1, 'title'=>'message1'),
            array('id'=>2, 'title'=>'message2'),
        );
        // 加入跟踪调试
        $backtrace = debug_backtrace();
        var_dump($backtrace);

        return $message;
    }
}

// 获取用户订单资料
$order_id = 1000000;

$oOrder = new Order;
$order_info = $oOrder->get_order($order_id);
View Code
复制代码

结果:

 

2.打印回溯    

debug_print_backtrace (int $options = 0,int $limit = 0) :


$options :此参数是以下选项的位掩码:
$limit  :此参数可用于限制打印的堆栈帧的数目。

1
debug_print_backtrace();

  代码:

复制代码
<?php

// 订单资料
class Order{

    // 获取订单资料
    function get_order($order_id){
        $user_id = 1001;
        // 获取用户资料
        $oUser = new User;
        $user_info = $oUser->get_user($user_id);
        // 订单资料
        $order_info = array(
            'order_id' => $order_id,
            'order_name' => 'my order',
            'user_info' => $user_info,
        );
        return $order_info;
    }
}

class User{
    // 获取用户资料
    function get_user($user_id){
        // 获取用户讯息
        $oMessage = new Message;
        $user_message = $oMessage->get_message($user_id);
        $user_info = array(
                'user_id' => $user_id,
                'name' => 'fdipzone',
                'message' => $user_message
        );
        return $user_info;
    }
}

class Message{
    // 获取用户讯息
    function get_message($user_id){
        $message = array(
            array('id'=>1, 'title'=>'message1'),
            array('id'=>2, 'title'=>'message2'),
        );
        // 加入跟踪调试
        //$backtrace = debug_backtrace();
        //var_dump($backtrace);//fixme or
        debug_print_backtrace();

        return $message;
    }
}

// 获取用户订单资料
$order_id = 1000000;

$oOrder = new Order;
$order_info = $oOrder->get_order($order_id);
View Code
复制代码

结果:

posted @   徐锅  阅读(2237)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
历史上的今天:
2017-12-06 PHP获取网络图片并保存在本地目录
2017-12-06 PowerDesigner 15
2017-12-06 sql里的正则表达式

点击右上角即可分享
微信分享提示