PHP中调试函数debug_backtrace的使用示例代码

yipeiwu_com7年前PHP代码库

前言

如果我们想知道某个方法被谁调用了? debug_backtrace可以解决。debug_backtrace() 可以打印出一个页面的调用过程 , 从哪儿来到哪儿去一目了然。

有时候我们想知道这个函数或方法的调用堆栈,也就是它是如何一级一级是被调用到的,可以用 PHP 的 debug_backtrace 函数打印,就像这样:

示例代码

public function update(Request $request, $id)
{
 dd(debug_backtrace());
 $getGameID = function ($request) {
 if (!$request->game_id) {
 return 1000 + intval($request->id);
 }
 return $request->game_id;
 };
 
 $previews = $this->getGamePreviews($request->game_preview);
 
 $request->merge([
 'game_preview' => json_encode($previews),
 'game_id' => $getGameID($request)
 ]);
 EgretGame::where('id', $id)->update($request->except(['_token', '_method']));
 return redirect()->route('egretgame.index')->with('success', '编辑成功!');
}

你可以控制需要回溯的堆栈层级数量,其中 debug_backtrace 第一个参数默认是一个常量 DEBUG_BACKTRACE_PROVIDE_OBJECT,表示显示这个对象的信息,第二个参数用于控制回溯的堆栈数量,默认是全部。

效果如图所示,调用层级的关系一目了然:

PHP 官方文档:http://php.net/manual/zh/function.debug-backtrace.php

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对【宜配屋www.yipeiwu.com】的支持。

相关文章

自己写的兼容低于PHP 5.5版本的array_column()函数

array_column 用于获取二维数组中的元素(PHP 5.5新增函数),但我们有时候需要在低版本的PHP环境中使用… if( ! function_exists('array_...

php中的常用魔术方法总结

常用的魔术方法有:__Tostring ()  __Call()  __autoLoad()  __ clone()  __GET() ...

PHP实现的curl批量请求操作示例

本文实例讲述了PHP实现的curl批量请求操作。分享给大家供大家参考,具体如下: <?php $ch = array(); $res = array(); $conn...

php实现用户注册密码的crypt加密

php实现用户注册密码的crypt加密

本文实例为大家分享了php用户注册密码的加密,供大家参考,具体内容如下 一、代码 1、conn.php <?php $conn = mysql_connec...

火车头采集器3.0采集图文教程

火车头采集器3.0采集图文教程

以采集示例详解部分功能今天要给大家做示例的网站是163的 娱乐频道 这个应该是个比较通用和实用的规则,下面开始。如果您是火车采集器的老手,那么您可以参考下,因为我要讲解的会有违传统的思维...