PHP 错误处理函数

PHP debug_backtrace() 函数用于生成 PHP 回溯。

语法

debug_backtrace(options, limit) 

参数

options可选。 指定此参数作为以下选项的位掩码:
  • DEBUG_BACKTRACE_PROVIDE_OBJECT -(默认)是否填充"对象"索引。
  • DEBUG_BACKTRACE_IGNORE_ARGS - 是否省略"args"索引以及所有函数/方法参数,以节省内存。
limit可选。 该参数可用于限制返回的堆栈帧的数量。默认情况下(limit=0)它返回所有堆栈帧。

返回值

返回关联数组的数组。可能返回的元素如下:

名字类型描述
functionstring当前函数名称。
lineint当前行号。
filestring当前文件名。
classstring当前类名。
objectobject当前对象。
typestring当前调用类型。可能的调用:
  • 如果是方法调用,则返回"->"。
  • 如果静态方法调用,则返回"::"。
  • 如果函数调用,没有返回任何内容。
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"
    }
  }
}