PHP debug_backtrace() 函数

PHP debug_backtrace() 函数生成一个 backtrace

该函数返回一个关联数组

下面是可能返回的元素
function 字符串 当前的函数名
line 整数 当前的行号
file 字符串 当前的文件名
object 对象 当前对象
type 字符串 当前的调用类型,可能的调用: 返回: “->” - 方法调用返回: “::” - 静态方法调用返回 nothing - 函数调用
args 数组 如果在函数中,列出函数参数。如果在被引用的文件中,列出被引用的文件名

For Example one:

 class Hello{
        private    $var;
        public     $var2;
        protected  $var3;

    public function __construct($var,$var2,$var3){
            $this->var=$var;
            $this->var2=$var2;
            $this->var3=$var3;
        }
   }

function test(Hello $hello){
        echo "Hi this is a test function"."<br>";
        print_r(debug_backtrace());
}

$hello2=new Hello(‘A‘,‘B‘,‘C‘);
test($hello2);

实例One输出结果如下:

Hi this is a test function

Array ( [0] => Array (

[file] => D:\www\MyProjecttest\index4.php

[line] => 52

[function] => test

[args] => Array ( [0] => Hello Object ( [var:Hello:private] => A [var2] => B [var3:protected] => C ) ) ) )

注:在此只输出四个参数,分别是:file,line,function,args;

For Example Two:

class Hello{
        private    $var;
        public     $var2;
        protected  $var3;

   public function __construct($var,$var2,$var3)                   {
      $this->var=$var;
      $this->var2=$var2;
      $this->var3=$var3;
 } 

   function test(Hello $hello){
       echo "Hi this is a test function"."<br>";
       print_r(debug_backtrace());
   }
}

$hello2=new Hello(‘A‘,‘B‘,‘C‘);
$hello2->test($hello2);

实例Two输出结果如下:

Hi this is a test function

Array ( [0] => Array (

[file] => D:\www\MyProjecttest\index4.php

[line] => 54

[function] => test

[class] => Hello

[object] => Hello Object ( [var:Hello:private] => A [var2] => B [var3:protected] => C )

[type] => ->

[args] => Array ( [0] => Hello Object ( [var:Hello:private] => A [var2] => B [var3:protected] => C ) ) ) )

注:在此所有参数都输出了,分别是:file,line,function,class,object,type,args;

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-03 23:01:05

PHP debug_backtrace() 函数的相关文章

__利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载

利用PHP的debug_backtrace函数,实现PHP文件权限管理.动态加载 简述 可能大家都知道,php中有一个函数叫debug_backtrace,它可以回溯跟踪函数的调用信息,可以说是一个调试利器. 好,来复习一下.view source?01    one();02     03    function one() {04        two();05    }06     07    function two() {08        three();09    }10    

利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载

简述 可能大家都知道,php中有一个函数叫debug_backtrace,它可以回溯跟踪函数的调用信息,可以说是一个调试利器. 好,来复习一下 01 one(); 02 03 function one() { 04 two(); 05 } 06 07 function two() { 08 three(); 09 } 10 11 function three() { 12 print_r( debug_backtrace() ); 13 } 14 15 /* 16 输出: 17 Array 18

(转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】

原文地址:http://www.cnblogs.com/melonblog/archive/2013/05/09/3062303.html 原文作者:豆浆油条 - melon 本文示例代码测试环境是Windows下的APMServ(PHP5.2.6) 简述 可能大家都知道,php中有一个函数叫debug_backtrace,它可以回溯跟踪函数的调用信息,可以说是一个调试利器. 好,来复习一下. one(); function one() { two(); } function two() { t

PHP内置函数大全

1 php内置函数大全 2 第2章 Apache函数 15 3 2.1 Apache信息获取类函数 15 4 2.1.1 apache_child_terminate函数:在本次请求结束后终止Apache进程 15 5 2.1.2 apache_get_modules函数:获取Apache的模块列表 16 6 2.1.3 apache_get_version函数:获取Apache的版本 16 7 2.1.4 apache_getenv函数:获取Apache的环境变量 17 8 2.1.5 apa

PHP实现事件机制实例分析

PHP实现事件机制实例分析 内置了事件机制的语言不多,php也没有提供这样的功能.事件(Event)说简单了就是一个Observer模式,实现起来很容易.但是有所不同的是,事件的监听者谁都可以加,但是只能由直接包含它的对象触发.这就有一点点难度了.php有一个debug_backtrace函数,可以得到当前的调用栈,由此可以找到判断调用事件触发函数的对象是不是直接包含它的对象的办法. <?php /** * 事件 * @edit http://www.lai18.com * @author xi

atitit. web 在线文件管理器最佳实践(1)--- elFinder 的使用流程解决之道 。打开浏览服务器文件夹java .net php

atitit. web 在线文件管理器最佳实践(1)--- elFinder 的使用流程解决之道 .打开浏览服务器文件夹java .net php 1. 环境:::项目java web,需要打开浏览服务器文件夹挑选文件,在返回... 1 2. 在线文件管理器要实现的基本的功能::指定开始目录,指定getfile回调 1 3. 组件选型:: elFinder (3M) ,,php web ftp 1 4. elFinder 的概念 1 5. elFinder  1.x 的使用过程 2 6. elF

让程序员不再苦逼的神器(上)

乘风破浪,启航未来! 做程序猿「媛」是一个苦逼的活,大周六地早起在技术群里招呼,看到没有啥人响应,说了一句,「估计都没有醒」,然后一位哥们抛过来,「在加班」 ! 做 Web 开发更是一个苦逼的活,不像是做 iOS,搞定客户端,基本上就万事大吉了.做 Web 开发不仅仅是要做后端,前端也需要了解和熟悉! 做前后端通吃的 DevOps 全栈工程师绝对是最苦逼的活,不但需要做开发,而且还要了解运维.优化,不会运维的工程师绝对不是一个好架构师! 但所幸的事,一个优秀的工程师尽管很忙,尽管要熟悉前后端.系

程序的调试(堆栈的使用)

换新工作一个月,以前是做自动化测试的,对于代码的编译,调试一直都是停留在数据的输出,显示等层面的调试,从来没有考虑到更深的一层.汗颜. 正如领导所说.对于任何一个成熟的框架来说,都会有相应的log输出,如果仅仅是将将数据输出,显示进行调试,太机械了.作为一个开发人员,如何高效的的工作,高效的解决问题,这才是关键. 哈哈,不扯了,进入正题. 最近,在做一个线下网站的性能测试,需要找出线下网站的响应时间作为判断的标准.切入正题了.对于任何一个编程语言来说,都有对应的堆栈函数,便于用户进行调试程序,监

PHP反射ReflectionClass、ReflectionMethod 入门教程 - PHP博客|PHP开发|Linux运维|服务器架构|钱途无梁

PHP5 具有完整的反射API,添加对类.接口.函数.方法和扩展进行反向工程的能力. 反射是什么? 它是指在PHP运行状态中,扩展分析PHP程序,导出或提取出关于类.方法.属性.参数等的详细信息,包括注释.这种动态获取的信息以及动态调用对象的方法的功能称为反射API.反射是操纵面向对象范型中元模型的API,其功能十分强大,可帮助我们构建复杂,可扩展的应用. 其用途如:自动加载插件,自动生成文档,甚至可用来扩充PHP语言. PHP反射api由若干类组成,可帮助我们用来访问程序的元数据或者同相关的注