簡單 php 代碼跟蹤調試實現php
debug_backtrace:生成回溯
debug_print_backtrace:打印回溯
1. debug_backtrace ($options = DEBUG_BACKTRACE_PROVIDE_OBJECT, $limit = 0) {}ide
$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);
結果:
spa
2.打印回溯 debug
debug_print_backtrace (int $options = 0,int $limit = 0) :調試
$options :此參數是如下選項的位掩碼:
$limit :此參數可用於限制打印的堆棧幀的數目。code
debug_print_backtrace();
代碼:blog
<?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);
結果:ip