PHP 代码跟踪
2016-05-19 21:09
661 查看
怎么知道代码的执行过程呢,也就是说怎么知道:是先执行哪些代码,然后执行哪些代码呢?
这里有一个非常犀利的函数,可以让你知道代码的执行过程 debug_backtrace() 函数。
来一段代码:
上面的 $caller = debug_bacetrace()[2] 的意思是调用当前这个 函数的 再往前推两层的那个函数。 $caller 指向的就是调用当前函数的前两层函数,我不知道讲清楚了没有:
在讲一下:
假设当前执行的函数是 c 的话,那么,上面的 $caller 就是外面的函数A(). 我要说的就是这个意思。
这里记录一下 debug_backtrace() 这个函数的用法。
这里有一个非常犀利的函数,可以让你知道代码的执行过程 debug_backtrace() 函数。
来一段代码:
Logger::$to_php_log = function ($level, $message) { if($level < Logger::$level) return; $titles = array( Logger::DEBUG => E_USER_NOTICE, Logger::INFO => E_USER_NOTICE, Logger::WARNING => E_USER_WARNING, Logger::ERROR => E_USER_ERROR, ); $caller = debug_backtrace()[2]; trigger_error($message.' in '.$caller['file'].' on line '.$caller['line'].''."\n<br />", $titles[$level]); };
上面的 $caller = debug_bacetrace()[2] 的意思是调用当前这个 函数的 再往前推两层的那个函数。 $caller 指向的就是调用当前函数的前两层函数,我不知道讲清楚了没有:
在讲一下:
funtion A(){ function B (){ function c(){ $caller = debug_backtrace()[2]; } } }
假设当前执行的函数是 c 的话,那么,上面的 $caller 就是外面的函数A(). 我要说的就是这个意思。
这里记录一下 debug_backtrace() 这个函数的用法。
相关文章推荐
- php CI框架搭建(一)
- php页面用include引入header.php出现头部上边有一行空白
- YII的lazy loading
- zend studio 12汉化和破解
- YII关联查询
- PHP $_SERVER参数详解
- ThinkPHP基础
- ContentProvider基础
- 为PHP7安装Windows Server 2012 R2过程记录
- 破解TP-Link路由-嗅探PPPoE拨号密码
- OSX给PHP添加pdo_mysql扩展
- PHP解决抢购、秒杀、抢楼、抽奖等阻塞式高并发库存防控超量的思路方法
- OSX为PHP添加mysql扩展
- phpexcel导出excel中文乱码问题解决
- OSX PHP添加gettext支持
- OSX PHP添加intl支持
- yii
- 解决OSX上面PHP curl SSLRead() error
- PHP函数用法
- 基于在生产环境中使用php性能测试工具xhprof的详解