php debug_backtrace方法跟踪代码调用

php debug_backtrace方法跟踪代码调用
function    string  当前的函数名,参见: __FUNCTION__。
line        integer 当前的行号。参见: __LINE__。
file        string  当前的文件名。参见: __FILE__。
class       string  当前 class 的名称。参见 __CLASS__
object      object  当前的 object。
type        string  当前调用的类型。如果是一个方法,会返回 "->"。如果是一个静态方法,会返回 "::"。 如果是一个函数调用,则返回空。
args        array   如果在一个函数里,这会列出函数的参数。 如果是在一个被包含的文件里,会列出包含的文件名。
index.php
get_order($order_id);
?>
order.php
get_user($user_id);

        // 订单资料
        $order_info = array(
            'order_id' => $order_id,
            'order_name' => 'my order',
            'user_info' => $user_info,
        );

        return $order_info;

    }

}
?>
user.php
get_message($user_id);

        $user_info = array(
                'user_id' => $user_id,
                'name' => 'fdipzone',
                'message' => $user_message
        );

        return $user_info;

    }

}
?>
message.php
1, 'title'=>'message1'),
            array('id'=>2, 'title'=>'message2'),
        );

        // 加入跟踪调试
        $backtrace = debug_backtrace();
        var_dump($backtrace);

        return $message;

    }

}
?>
/message.php:15:
array (size=3)
  0 => 
    array (size=7)
      'file' => string '/user.php' (length=9)
      'line' => int 12
      'function' => string 'get_message' (length=11)
      'class' => string 'Message' (length=7)
      'object' => 
        object(Message)[3]
      'type' => string '->' (length=2)
      'args' => 
        array (size=1)
          0 => int 1001
  1 => 
    array (size=7)
      'file' => string '/order.php' (length=10)
      'line' => int 14
      'function' => string 'get_user' (length=8)
      'class' => string 'User' (length=4)
      'object' => 
        object(User)[2]
      'type' => string '->' (length=2)
      'args' => 
        array (size=1)
          0 => int 1001
  2 => 
    array (size=7)
      'file' => string '/index.php' (length=9)
      'line' => int 8
      'function' => string 'get_order' (length=9)
      'class' => string 'Order' (length=5)
      'object' => 
        object(Order)[1]
      'type' => string '->' (length=2)
      'args' => 
        array (size=1)
          0 => int 1000000
可以看到调用过程是
1.index.php 
line 8 
class Order 
function get_order 
args int 1000000

2.order.php 
line 14 
class User 
function get_user 
args int 1001

3.user.php 
line 12 
class Message 
function get_message 
args int 1001


查看原文: http://newmiracle.cn/?p=2523

你可能感兴趣的:(php debug_backtrace方法跟踪代码调用)