(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
debug_backtrace — Genera el contexto de depuración
debug_backtrace() genera un contexto de depuración PHP.
optionsEste argumento es una máscara de las siguientes opciones:
| DEBUG_BACKTRACE_PROVIDE_OBJECT | Si se debe o no poblar el índice "object". |
| DEBUG_BACKTRACE_IGNORE_ARGS | Si se debe o no omitir el índice "args" y por lo tanto todos los argumentos de la función/método para ahorrar memoria. |
Nota:
Existen cuatro combinaciones posibles:
Opciones de debug_backtrace() debug_backtrace()Rellena los dos índices debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT)debug_backtrace(1)debug_backtrace(0)Omite el índice "object"y rellena el índice"args".debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS)Omite el índice "object"y el índice"args".debug_backtrace(2)debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT|DEBUG_BACKTRACE_IGNORE_ARGS)Rellena el índice "object"y omite el índice"args".debug_backtrace(3)
limit
Este argumento puede ser utilizado para limitar
el número de marcos en la pila devuelta. Por omisión
(limit=0), la
función devuelve todos los marcos de la pila.
Devuelve un array de arrays asociativos. Los elementos de retorno posibles son los siguientes:
| Nombre | Tipo | Descripción |
|---|---|---|
| function | string | El nombre de la función actual. Ver también __FUNCTION__. |
| line | entero | El número de línea actual. Ver también __LINE__. |
| file | string | El nombre del fichero actual. Ver también __FILE__. |
| class | string | El nombre de la clase actual. Ver también __CLASS__. |
| object | objeto | El objeto actual. |
| type | string | El tipo de clase actual. Si un método es llamado, "->" es devuelto. Si un método estático es llamado, "::" es devuelto. Si una función es llamada, nada será devuelto. |
| args | array | Si dentro de una función, esto lista los argumentos. Si en un fichero incluido, esto lista los ficheros incluidos. |
Ejemplo #1 Ejemplo con 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';
?>Resultado de la ejecución de /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"
}
}