推薦學習:《PHP教程》
PHP打印調用堆棧的三種方法如下:
方法1:使用debug_print_backtrace()函數打印調用堆棧。
例:
?php // 用于打印PHP調用堆棧的PHP程序//調用函數parent_funcfunction child_func() { parent_func(); // 調用grandparent_func函數function parent_func() { grandparent_func(); // 函數的作用是:打印調用堆棧function grandparent_func() { debug_print_backtrace(); //主函數調用 child_func(); ?
輸出:
#0 grandparent_func() called at [/home/905a3b4d90f10b30521fedcb56c99fba.php:12]#1 parent_func() called at [/home/905a3b4d90f10b30521fedcb56c99fba.php:7]#2 child_func() called at [/home/905a3b4d90f10b30521fedcb56c99fba.php:21]
方法2:使用debug_backtrace()函數打印調用堆棧。
例:
?php // 用于打印PHP調用堆棧的PHP程序//函數調用parent_funcfunction child_func() { parent_func(); // 函數調用grandparent_funcfunction parent_func() { grandparent_func(); // 函數的作用是:打印調用堆棧function grandparent_func() { var_dump(debug_backtrace()); // 主函數調用 child_func(); ?
輸出:
array(3) { [0]= array(4) { [ file ]= string(42) /home/2b81f040639170c49a6a58adb23d5154.php [ line ]= int(12) [ function ]= string(16) grandparent_func [ args ]= array(0) { [1]= array(4) { [ file ]= string(42) /home/2b81f040639170c49a6a58adb23d5154.php [ line ]= int(7) [ function ]= string(11) parent_func [ args ]= array(0) { [2]= array(4) { [ file ]= string(42) /home/2b81f040639170c49a6a58adb23d5154.php [ line ]= int(21) [ function ]= string(10) child_func [ args ]= array(0) {}
方法3: Exception類的getTraceAsString()成員函數返回一個調用堆棧。
例:
?php // 用于打印PHP調用堆棧的PHP程序//函數調用parent_funcfunction child_func() { parent_func(); // 函數調用grandparent_funcfunction parent_func() { grandparent_func(); // 函數的作用是:打印調用堆棧function grandparent_func() { $e = new Exception; var_dump($e- getTraceAsString()); // 主函數調用child_func(); ?
輸出:
string(207) #0 /home/8d8303d43667a4915d43dab7d63de26d.php(12): grandparent_func()#1 /home/8d8303d43667a4915d43dab7d63de26d.php(7): parent_func()#2 /home/8d8303d43667a4915d43dab7d63de26d.php(22): child_func()#3 {main}
本篇文章就是關于PHP怎么打印調用堆棧的三種方法介紹,希望對需要的朋友有所幫助!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答