登录  /  注册

PHP怎么打印调用堆栈

藏色散人
发布: 2019-01-24 13:45:39
原创
8634人浏览过

在给定的php代码中,child_func()函数调用parent_func()函数,该函数进一步调用grandparent_func()函数,从而生成调用堆栈。

PHP怎么打印调用堆栈

推荐学习:《PHP教程

PHP打印调用堆栈的三种方法如下:

方法1:使用debug_print_backtrace()函数打印调用堆栈。

例:

立即学习PHP免费学习笔记(深入)”;

<?php  
// 用于打印PHP调用堆栈的PHP程序
//调用函数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 [/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调用堆栈的PHP程序
//函数调用parent_func
function child_func() { 
    parent_func(); 
} 
  
// 函数调用grandparent_func
function parent_func() { 
    grandparent_func(); 
} 
  
// 函数的作用是:打印调用堆栈
function grandparent_func() { 
    var_dump(debug_backtrace()); 
} 
  
// 主函数调用 
child_func(); 
  
?>
登录后复制

输出:

array(3) {
  [0]=&gt;
  array(4) {
    ["file"]=&gt;
    string(42) "/home/2b81f040639170c49a6a58adb23d5154.php"
    ["line"]=&gt;
    int(12)
    ["function"]=&gt;
    string(16) "grandparent_func"
    ["args"]=&gt;
    array(0) {
    }
  }
  [1]=&gt;
  array(4) {
    ["file"]=&gt;
    string(42) "/home/2b81f040639170c49a6a58adb23d5154.php"
    ["line"]=&gt;
    int(7)
    ["function"]=&gt;
    string(11) "parent_func"
    ["args"]=&gt;
    array(0) {
    }
  }
  [2]=&gt;
  array(4) {
    ["file"]=&gt;
    string(42) "/home/2b81f040639170c49a6a58adb23d5154.php"
    ["line"]=&gt;
    int(21)
    ["function"]=&gt;
    string(10) "child_func"
    ["args"]=&gt;
    array(0) {
    }
  }
}
登录后复制

方法3: Exception类的getTraceAsString()成员函数返回一个调用堆栈。

例:

立即学习PHP免费学习笔记(深入)”;

<?php  
// 用于打印PHP调用堆栈的PHP程序
//函数调用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(); 
  
?&gt;
登录后复制

输出:

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怎么打印调用堆栈的三种方法介绍,希望对需要的朋友有所帮助!

以上就是PHP怎么打印调用堆栈的详细内容,更多请关注php中文网其它相关文章!

全能打印神器
全能打印神器

全能打印神器是一款非常好用的打印软件,可以在电脑、手机、平板电脑等设备上使用。支持无线打印和云打印,操作非常简单,使用起来也非常方便,有需要的小伙伴快来保存下载体验吧!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
案列下载在哪里 案列下载在哪里
这个男人有点?帅?来自于2024-10-25 12:15:02
运行视频看不了啊 运行视频看不了啊
P粉109248948来自于2024-09-24 10:21:09
请问写php项目都要用到git吗 请问写php项目都要用到git吗
PHP中文网用户-4202961来自于2024-06-11 14:28:59
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 //m.sbmmt.com/ All Rights Reserved | php.cn | 湘ICP备2023035733号