前言在调试程序的过程中,可能经常会有一个方法需要回溯。这里介绍两个比较不错的PHP函数,也是我经常用到的。内容(PHP4>=4.3.0、PHP5、PHP7)debug_backtrace—生成回溯(backtrace)(PHP5、PHP7)debug_print_backtrace—打印回溯。这两个看起来有点相似,但是它们的功能是相似的。让我通过一个简单的例子向您展示如何使用它们。示例';var_dump($内容);echo'';}/***ClassA*/classA{publicfunctionsay(){//在这里打印回溯内容dump(debug_backtrace());//调用方法本身打印debug_print_backtrace();回声'
';回声'你好世界!';}}/***B类*/B类{publicfunctionsayB(A$obj){$obj->say();}}/***测试结果*/$a=newA();$b=newB();$b->sayB($a);下面是运行结果:array(2){[0]=>array(7){["file"]=>string(29)"D:\phpStudy\WWW\test\test.php"["line"]=>int(43)["function"]=>string(3)"say"["class"]=>string(1)"A"["object"]=>object(A)#1(0){}["type"]=>string(2)"->"["args"]=>array(0){}}[1]=>array(7){["file"]=>的tring(29)"D:\phpStudy\WWW\test\test.php"["line"]=>int(52)["function"]=>string(4)"sayB"["class"]=>string(1)"B"["object"]=>object(B)#2(0){}["type"]=>string(2)"->"["args"]=>array(1){[0]=>object(A)#1(0){}}}}#0A->say()在[D:\phpStudy\WWW\test\test.php:43]#1B->sayB(AObject())在[D:\phpStudy\WWW\test\test.php:52]调用HelloWorld!结合代码不难看出,他们着重于返回结果集和拆分结构;另一个侧重于按调用顺序打印出回溯总结内容那么多,结果一目了然,其他测试会一目了然。PHP的一些方法还是不错的,平时可以多看手册。下面是他们两个的官方链接。感兴趣的可以点击详细查看。debug_backtracedebug_print_backtrace
