函数名称: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"。