Função PHP debug_backtrace()
A função debug_backtrace() é uma função embutida no PHP que geralmente é usada por programadores em depuração. O principal trabalho da função debug_backtrace() é gerar o backtrace do PHP, ou seja, examinar o rastreamento da pilha. Ele retorna uma array de array associada do código PHP de backtrace. Todos os elementos retornados possíveis por esta função são -
Nome | Modelo | Descrição |
função | fragmento | Nome da função na qual a função debug_backtrace() está sendo chamada. |
linha | inteiro | Número da linha atual da chamada de função. |
Arquivo | fragmento | Nome do arquivo onde a função debug_backtrace() foi chamada. |
classe | fragmento | Nome da classe onde a função debug_backtrace() foi chamada. |
objeto | objeto | Nome do objeto que foi usado para evocar a função de membro na qual a função debug_backtrace() está presente. |
modelo | fragmento | O tipo de chamada atual. Se o tipo de chamada atual for chamada de método, “->” será retornado. Se for uma chamada de método estático, “::” será retornado e se for uma chamada de função, nada será retornado. |
args | variedade | Lista dos argumentos presentes na definição da função. Se a função debug_backtrace() for usada no arquivo, todos os arquivos incluídos nela serão retornados. |
Sintaxe:
array debug_backtrace(int $options, int $limit);
Aqui, ambos os parâmetros $options e $limit são opcionais e são do tipo inteiro. O parâmetro $option é usado para bitmask e $limit pode ser usado para definir o limite do número de frames da pilha a serem impressos. O valor padrão para o $limit é definido como zero.
Exemplo: Neste exemplo, criamos uma função que retorna a soma de dois parâmetros de entrada e dentro dessa função debug_backtrace() foi usada. Ao imprimir a saída primeiro, a soma dos parâmetros de entrada será exibida e, em seguida, o backtrace do código será impresso.
<?php
function sum($a, $b) {
echo $a + $b . "\n\n";
var_dump(debug_backtrace());
}
sum(10,2);
?>
12 array (1) { [0] => array (4) { ["arquivo"] => string (42) "/home/2228b7c9e401174a5f773007cd840e32.php" ["linha"] => int (9) ["função"] => string (3) "soma" ["args"] => array (2) { [0] => int (10) [1] => int (2) } } }
Exemplo 2: Neste exemplo, o conceito da função debug_backtrace() foi implementado dentro da classe junto com o conceito de recursão para verificar seu rastreio. Neste exemplo, duas classes, isto é, BaseClass e DerivedClass, foram criadas junto com seus construtores e dentro do construtor de BaseClass debug_backtrace() foi chamado. A saída gerada, ou seja, o rastreamento de volta para este código consiste em todos os elementos mencionados na tabela acima.
<?php
class BaseClass {
public function __construct() {
$this->_child = new DerivedClass($this);
var_dump(debug_backtrace());
}
}
class DerivedClass {
public function __construct(BaseClass $d) {
$this->_parent = $d;
}
}
$obj = new BaseClass();
?>
array (1) { [0] => array (7) { ["arquivo"] => string (42) "/home/ecdb752d3b6ec8ba97e6db84c42a5f2f.php" ["linha"] => int (18) ["função"] => string (11) "__construct" ["classe"] => string (9) "BaseClass" ["objeto"] => objeto (BaseClass) # 1 (1) { ["_criança"] => objeto (DerivedClass) # 2 (1) { ["_parent"] => *RECURSÃO* } } ["tipo"] => string (2) "->" ["args"] => array (0) { } } }
Referência: https://www.php.net/manual/en/function.debug-backtrace.php
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva