Throwable::getTrace()

获取抛出异常时的调用栈信息,返回一个数组,包含了每个调用栈帧的详细信息

首字母:T

函数名称:Throwable::getTrace()

函数描述:获取异常的调用栈信息

适用版本:PHP 7.0.0 及以上版本

用法: 该函数用于获取抛出异常时的调用栈信息,返回一个数组,包含了每个调用栈帧的详细信息。每个调用栈帧都是一个关联数组,包含以下键值对:

  • "file": 表示调用栈帧所在的文件名
  • "line": 表示调用栈帧所在的行号
  • "function": 表示调用栈帧所调用的函数名
  • "class": 表示调用栈帧所在的类名
  • "object": 表示调用栈帧所在的对象
  • "type": 表示调用栈帧所使用的操作符,如 "->" 或 "::"
  • "args": 表示调用栈帧所传递的参数

示例:

try {
 throw new Exception("Something went wrong");
} catch (Throwable $e) {
 $trace = $e->getTrace();
 foreach ($trace as $frame) {
 $file = isset($frame['file']) ? $frame['file'] : 'unknown file';
 $line = isset($frame['line']) ? $frame['line'] : 'unknown line';
 $function = isset($frame['function']) ? $frame['function'] : 'unknown function';
 $class = isset($frame['class']) ? $frame['class'] : 'unknown class';
 echo "File: $file\n";
 echo "Line: $line\n";
 echo "Function: $function\n";
 echo "Class: $class\n";
 echo "\n";
 }
}

上述示例中,我们通过抛出一个异常并捕获它,然后使用getTrace()函数获取调用栈信息。然后,我们遍历调用栈数组,打印出每个调用栈帧的文件名、行号、函数名和类名。如果某个调用栈帧缺少某个信息,我们将显示"unknown"。

同首字母函数