PHP debug_backtrace() 函数用于生成 PHP 回溯。
语法
debug_backtrace(options, limit)
参数
options | 可选。 指定此参数作为以下选项的位掩码:
|
limit | 可选。 该参数可用于限制返回的堆栈帧的数量。默认情况下(limit=0)它返回所有堆栈帧。 |
返回值
返回关联数组的数组。可能返回的元素如下:
名字 | 类型 | 描述 |
---|---|---|
function | string | 当前函数名称。 |
line | int | 当前行号。 |
file | string | 当前文件名。 |
class | string | 当前类名。 |
object | object | 当前对象。 |
type | string | 当前调用类型。可能的调用:
|
args | 数组 | 如果在函数内部,它列出了函数参数。如果在包含的文件中,它会列出包含的文件名。 |
示例:debug_backtrace() 示例
下面的示例显示了debug_backtrace() 函数的用法。
<?php
function test_a($x, $y){
echo "\$x + \$y = ".($x + $y)."\n";
var_dump(debug_backtrace());
}
test_a(10, 20);
?>
上述代码的输出将是:
$x + $y = 30
array(1) {
[0]=>
array(4) {
["file"]=>
string(39) "Main.php"
["line"]=>
int(7)
["function"]=>
string(6) "test_a"
["args"]=>
array(2) {
[0]=>
int(10)
[1]=>
int(20)
}
}
}
示例:debug_backtrace() 示例
再考虑一个关于 debug_backtrace() 函数的示例。
<?php
function test_a($str){
test_b($str);
}
function test_b($str){
echo "Hi $str \n";
var_dump(debug_backtrace());
}
test_a('friend');
?>
上述代码的输出将是:
Hi friend
array(2) {
[0]=>
array(4) {
["file"]=>
string(39) "Main.php"
["line"]=>
int(3)
["function"]=>
string(6) "test_b"
["args"]=>
array(1) {
[0]=>
string(6) "friend"
}
}
[1]=>
array(4) {
["file"]=>
string(39) "Main.php"
["line"]=>
int(11)
["function"]=>
string(6) "test_a"
["args"]=>
array(1) {
[0]=>
string(6) "friend"
}
}
}