zoukankan      html  css  js  c++  java
  • 简单 php 代码跟踪调试实现

    简单 php 代码跟踪调试实现

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

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

    $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  :此参数可用于限制打印的堆栈帧的数目。

    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

    结果:

  • 相关阅读:
    P3405 [USACO16DEC]Cities and States S
    P1536 村村通
    P2853 [USACO06DEC]Cow Picnic S
    Springboot整合Swing制作简单GUI客户端项目记录
    Gradle打包可执行jar文件
    gradle配置优化及dependencies中各种依赖方式说明
    Gradle 打可执行jar包
    java swing开发窗体程序开发(四)MVC结构
    Java Swing 图形界面开发(目录)
    使用idea开发普通java项目,使用maven管理依赖,使用slf4j和log4j的配置方案
  • 原文地址:https://www.cnblogs.com/q1104460935/p/10075409.html
Copyright © 2011-2022 走看看