PHP Error 和 Logging 函数

实例

生成 PHP backtrace:

<?php
function a($txt) {
b("Glenn");
}
function b($txt) {
c("Cleveland");
}
function c($txt) {
var_dump(debug_backtrace());
}
a("Peter");
?>

以上代码的输出类似这样:

Array (
[0] => Array (
[file] => C:\webfolder\test.php
[line] => 6
[function] => c
[args] => Array (
[0] => Cleveland
)
)
[1] => Array (
[file] => C:\webfolder\test.php
[line] => 3
[function] => b
[args] => Array (
[0] => Glenn
)
)
[2] => Array (
[file] => C:\webfolder\test.php
[line] => 11
[function] => a
[args] => Array (
[0] => Peter
)
)
)

定义和用法

debug_backtrace() 函数生成 backtrace(回溯跟踪)。

该函数显示由 debug_backtrace() 函数代码生成的数据。

返回一个关联数组。可能返回的元素如下:

名称 类型 描述
function string 当前函数名称
line integer 当前行号
file string 当前文件名
class string 当前类名
object object 当前对象
type string

当前调用类型。可能的调用:

  • 返回: "->" - 方法调用
  • 返回: "::" - 静态方法调用
  • 返回 nothing - 函数调用
args array 如果在函数中,列出函数参数。如果在被引用的文件中,列出被引用的文件名。

语法

debug_backtrace(options,limit);
参数 描述
options

可选。规定以下选项的位掩码:

  • DEBUG_BACKTRACE_PROVIDE_OBJECT (是否填充 "object" 的索引)
  • DEBUG_BACKTRACE_IGNORE_ARGS (是否忽略 "args" 的索引,包括所有的 function/method 的参数,能够节省内存开销。)
limit 可选。限制返回堆栈帧的数量。默认为 (limit=0) ,返回所有的堆栈帧。

技术细节

返回值: None
PHP 版本: 4.3+
PHP 更新日志

PHP 5.4:添加了可选的参数 limit

PHP 5.3.6:参数 provide_object 改成 options,并且增加了可选参数 DEBUG_BACKTRACE_IGNORE_ARGS。

PHP 5.2.5:添加了可选参数 provide_object

PHP 5.1.1:添加了当前的 object 为可能返回的元素。

PHP debug_backtrace() 函数的更多相关文章

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

    简述 可能大家都知道,php中有一个函数叫debug_backtrace,它可以回溯跟踪函数的调用信息,可以说是一个调试利器. 好,来复习一下 01 one(); 02 03 function one ...

  2. PHP debug_backtrace() 函数打印调用处的调试信息

    http://php.net/manual/zh/function.debug-backtrace.php debug_backtrace (PHP 4 >= 4.3.0, PHP 5, PHP ...

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

    原文地址:http://www.cnblogs.com/melonblog/archive/2013/05/09/3062303.html 原文作者:豆浆油条 - melon 本文示例代码测试环境是W ...

  4. 【PHP手册】 PHP debug_backtrace() 函数

    定义和用法 PHP debug_backtrace() 函数生成一个 backtrace(回溯信息). 该函数返回一个关联数组.下面是可能返回的元素: 名称 类型 描述 function 字符串 当前 ...

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

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

  6. PHP 代码跟踪

    怎么知道代码的执行过程呢,也就是说怎么知道:是先执行哪些代码,然后执行哪些代码呢? 这里有一个非常犀利的函数,可以让你知道代码的执行过程 debug_backtrace()  函数. 来一段代码: L ...

  7. Xdebug安装与使用

    为什么需要Debugger? 很多PHP程序员调试使用echo.print_r().var_dump().printf()等,其实对 于有较丰富开发经验的程序员来说这些也已经足够了,他们往往可以在程序 ...

  8. php反射机制应用

    用来获取指定的类的信息,包括类中的属性,方法,方法权限,注释等 用途:1.thinkPHP框架中的前置,后置控制器的实现 2.与debug_backtrace函数结合使用,文件调用的权限管理 使用方法 ...

  9. PHP实现事件机制实例分析

    PHP实现事件机制实例分析 内置了事件机制的语言不多,php也没有提供这种功能.事件(Event)说简单了就是一个Observer模式.实现起来非常easy.可是有所不同的是,事件的监听者谁都能够加, ...

随机推荐

  1. maven项目打包 编码gbk的不可映射字符

    中文系统默认gbk编码格式,你的代码是utf8格式的.所以报错 <build> <plugins> <plugin> <groupId>org.apac ...

  2. python的dbutil

    目录机构如下: dbutil代码如下: #!/usr/bin/python # -*- coding:utf-8 -*- import configparser import pymysql clas ...

  3. vim的复制粘贴(包括系统剪贴板)

    1.vim常用复制粘贴命令 Vim的复制粘贴命令无疑是y (yank),p(paster),加上yy,P PS: vim有个很有意思的约定(我觉得是一种约定),就是某个命令的大小写都是实现某种功能,只 ...

  4. poj 4438 Hunters

    Hunters Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  5. 【NOIP2016练习】T2 跑跑步 (数论)

    : 这场的难度是从高到低的 ..]of longint; n,m,i,ans:longint; function gcd(x,y:longint):longint; var r:longint; be ...

  6. 【CF679B】Theseus and labyrinth(数学,贪心)

    题意: 给一个m<=10^15,每次都减最接近当前值的立方数 让你找一个不大于m的最大的数并且这个数是减法次数最多的数 思路:见http://blog.csdn.net/miracle_ma/a ...

  7. vue.js源码学习分享(三)

    /** * Mix properties into target object.//把多个属性插入目标的对象 */ function extend (to, _from) { for (var key ...

  8. 转 C++中不能声明为虚函数的有哪些函数

    传送门 C++中不能声明为虚函数的有哪些函数 常见的不不能声明为虚函数的有:普通函数(非成员函数):静态成员函数:内联成员函数:构造函数:友元函数. 1.为什么C++不支持普通函数为虚函数? 普通函数 ...

  9. hdu 1254(搜索题)

    推箱子 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...

  10. nVidia的物理系统

    PhysX PhysX(wiki en  中文,physx wiki   physx wiki2)是nVidia公司一款跨平台实时物理引擎,可使用硬件(GPU.PPU: Physics Process ...