debug_backtrace

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

debug_backtraceGera uma rastreamento retroativo

Descrição

debug_backtrace(int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT, int $limit = 0): array

debug_backtrace() gera um rastreamento retroativo do PHP.

Parâmetros

options

Este parâmetro é uma máscara de bits para as seguintes opções:

Opções de debug_backtrace()
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.

Note:

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.

Valor Retornado

Retorna um array de arrays associativos. Os elementos possíveis retornados são os seguintes:

Elementos possíveis retornados de debug_backtrace()
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.

Exemplos

Example #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"
  }
}

Veja Também