1. debug_print_backtrace()
//调用函数parent_func function child_func() { parent_func(); } //调用grandparent_func function parent_func() { grandparent_func(); } //打印调用堆栈 function grandparent_func() { debug_print_backtrace(); } //主函数调用 child_func(); #0 grandparent_func() called at [C:\Users\2023020701\Desktop\test.php:32] #1 parent_func() called at [C:\Users\2023020701\Desktop\test.php:28] #2 child_func() called at [C:\Users\2023020701\Desktop\test.php:39]
2. debug_backtrace()
//调用函数two function one($str1, $str2) { two("Glenn", "Quagmire"); } //调用three function two($str1, $str2) { three("Cleveland", "Brown"); } //打印调用堆栈 function three($str1, $str2) { print_r(debug_backtrace(0,1)); } //主函数调用 one("Peter", "Griffin"); Array ( [0] => Array ( [file] => C:\Users\2023020701\Desktop\test.php [line] => 18 [function] => three [args] => Array ( [0] => Cleveland [1] => Brown ) ) [1] => Array ( [file] => C:\Users\2023020701\Desktop\test.php [line] => 12 [function] => two [args] => Array ( [0] => Glenn [1] => Quagmire ) ) [2] => Array ( [file] => C:\Users\2023020701\Desktop\test.php [line] => 29 [function] => one [args] => Array ( [0] => Peter [1] => Griffin ) ) )
3. Exception类中的getTraceAsString()成员函数返回一个调用堆栈
//调用函数parent_func function child_func() { parent_func(); } //调用grandparent_func function parent_func() { grandparent_func(); } //打印调用堆栈 function grandparent_func() { $e = new Exception; var_dump($e->getTraceAsString()); } //主函数调用 child_func(); D:\wamp\www\temp.php:16:string '#0 D:\wamp\www\temp.php(10): grandparent_func() #1 D:\wamp\www\temp.php(5): parent_func() #2 D:\wamp\www\temp.php(20): child_func() #3 {main}' (length=162)
本文为崔凯原创文章,转载无需和我联系,但请注明来自冷暖自知一抹茶ckhttp://www.cksite.cn