(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
debug_backtrace — Gera uma rastreamento retroativo
debug_backtrace() gera um rastreamento retroativo do PHP.
optionsEste parâmetro é uma máscara de bits para as seguintes opções:
| DEBUG_BACKTRACE_PROVIDE_OBJECT | Define se o índice "object" deve ou não ser preenchido. |
| DEBUG_BACKTRACE_IGNORE_ARGS | Define se o índice "args" deve ou não ser omitido, e consequentemente todos os argumentos de métodos e funções, para economizar memória. |
Nota:
Existem quatro combinações possíveis:
Opções de debug_backtrace() debug_backtrace()Preenche ambos os índices debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT)debug_backtrace(1)debug_backtrace(0)Omite o índice "object"e preenche o índice"args".debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS)Omite o índice "object"e o índice"args".debug_backtrace(2)debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT|DEBUG_BACKTRACE_IGNORE_ARGS)Preenche o índice "object"e omite o índice"args".debug_backtrace(3)
limit
Este parâmetro pode ser usado para limitar o número de estruturas de pilha retornados.
Por padrão (limit=0) todas as estruturas são retornadas.
Retorna um array de arrays associativos. Os elementos possíveis retornados são os seguintes:
| Nome | Tipo | Descrição |
|---|---|---|
| function | string | O nome da função atual. Consulte também __FUNCTION__. |
| line | int | O número da linha atual. Consulte também __LINE__. |
| file | string | O nome do arquivo atual. Consulte também __FILE__. |
| class | string | O nome da classe atual. Consulte também __CLASS__ |
| object | object | O objeto atual. |
| type | string | O tipo de chamada atual. Se for chamada de método, "->" é retornado. Se for chamada de método estático, "::" é retornado. Se for chamada de função, nada é retornado. |
| args | array | Se for dentro de uma função, isto lista os arumentos da função. Se for dentro de um arquivo incluído, isto lista o nome do arquivo incluído. |
Exemplo #1 Exemplo de debug_backtrace()
<?php
// filename: /tmp/a.php
function a_test($str)
{
echo "\nHi: $str";
var_dump(debug_backtrace());
}
a_test('friend');
?>
<?php
// filename: /tmp/b.php
include_once '/tmp/a.php';
?>Resultados similares ao seguinte ao executar /tmp/b.php:
Hi: friend
array(2) {
[0]=>
array(4) {
["file"] => string(10) "/tmp/a.php"
["line"] => int(10)
["function"] => string(6) "a_test"
["args"]=>
array(1) {
[0] => &string(6) "friend"
}
}
[1]=>
array(4) {
["file"] => string(10) "/tmp/b.php"
["line"] => int(2)
["args"] =>
array(1) {
[0] => string(10) "/tmp/a.php"
}
["function"] => string(12) "include_once"
}
}