深圳全飞鸿

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 587|回复: 1
打印 上一主题 下一主题

php中debug手法

[复制链接]

800

主题

1379

帖子

7704

积分

版主

Rank: 7Rank: 7Rank: 7

积分
7704
跳转到指定楼层
楼主
发表于 2021-2-23 18:52:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

trigger_error('=== property: ' . print_r(debug_backtrace(),true), E_USER_NOTICE);


php的debug_backtrace方法可以对代码调用进行跟踪,方便调试代码。


debug_backtrace 方法说明

产生一条回溯跟踪(backtrace)

  1. array debug_backtrace ([ int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT [, int $limit = 0 ]] )
复制代码

  
参数

options

DEBUG_BACKTRACE_PROVIDE_OBJECT
是否填充 “object” 的索引。

DEBUG_BACKTRACE_IGNORE_ARGS
是否忽略 “args” 的索引,包括所有的 function/method 的参数,能够节省内存开销。

limit
这个参数能够用于限制返回堆栈帧的数量,默认为(limit=0),返回所有堆栈帧。
  
  
返回值

返回一个包含众多关联数组的array,可能返回的元素:

名字         类型    说明
function    string  当前的函数名,参见: __FUNCTION__。
line        integer 当前的行号。参见: __LINE__。
file        string  当前的文件名。参见: __FILE__。
class       string  当前 class 的名称。参见 __CLASS__
object      object  当前的 object。
type        string  当前调用的类型。如果是一个方法,会返回 "->"。如果是一个静态方法,会返回 "::"。 如果是一个函数调用,则返回空。
args        array   如果在一个函数里,这会列出函数的参数。 如果是在一个被包含的文件里,会列出包含的文件名。

回复

使用道具 举报

800

主题

1379

帖子

7704

积分

版主

Rank: 7Rank: 7Rank: 7

积分
7704
沙发
 楼主| 发表于 2021-6-12 23:42:49 | 只看该作者
查找函数位置:
  1. function function_dump($funcname) {
  2.   try {
  3.     if(is_array($funcname)) {
  4.       $func = new ReflectionMethod($funcname[0], $funcname[1]);
  5.       $funcname = $funcname[1];
  6.     } else {
  7.       //这个应该是当只有一个参数的时候就看做是本类的发放吧,大概,自行百度
  8.       $func = new ReflectionFunction($funcname);
  9.     }
  10.   } catch (ReflectionException $e) {
  11.     echo $e->getMessage();
  12.     return;
  13.   }
  14.   $start = $func->getStartLine() - 1;
  15.   $end = $func->getEndLine() - 1;
  16.   $filename = $func->getFileName();
  17.   return "function $funcname defined by $filename($start - $end)\n";
  18. }
复制代码



function_dump('a');
function_dump(array('b', 'f'));
$b = new b();
function_dump(array($b, 'f'));




                        die($this->function_dump(array($activity, "index")));
                        $this->url_function="index";

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|nagomes  

GMT+8, 2025-5-5 03:27 , Processed in 0.021340 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表