(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.
options
Este 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 | int | 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 | object | 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" } }