(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
debug_backtrace — Genera un backtrace
debug_backtrace() genera un backtrace di PHP.
options
Questo parametro è una bitmask per le seguenti opzioni:
DEBUG_BACKTRACE_PROVIDE_OBJECT | Indica se popolare o meno l'"oggetto" index. |
DEBUG_BACKTRACE_IGNORE_ARGS | Indica se omettere o meno gli indici di "args" e quindi tutti gli argomenti della funzione/metodo, per risparmiare memoria. |
Nota:
Ci sono quattro possibili combinazioni:
Opzioni di debug_backtrace() debug_backtrace()
Popola entrambi gli indici debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT)
debug_backtrace(1)
debug_backtrace(0)
Omette l'indice di "object"
e popola l'indice di"args"
.debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS)
Omette l'indice "object"
e l'indice di"args"
.debug_backtrace(2)
debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT|DEBUG_BACKTRACE_IGNORE_ARGS)
Popola l'indice "object"
e omette l'indice"args"
.debug_backtrace(3)
limit
Questo parametro può essere utilizzato per limitare il numero di stack frame restituiti.
Per default (limit
=0
) restituisce tutti gli stack frame.
Restituisce un array associativo array. Gli elementi che possono essere restituiti sono elencati nella seguente tabella:
Nome | Tipo | Descrizione |
---|---|---|
function | string | Il nome della funzione corrente. Vedere anche __FUNCTION__. |
line | int | Il numero della linea corrente. Vedere anche __LINE__. |
file | string | Il nome del file corrente. Vedere anche __FILE__. |
class | string | Il nome della classe corrente. Vedere anche __CLASS__ |
object | object | L'object corrente. |
type | string | Il tipo di chiamata corrente. Se è una chiamata ad un metodo, viene restituito "->". Se è una chiamata ad un metodo statico, viene restituito "::". Se è una chiamata ad una funzione, non viene restituito nulla. |
args | array | Se dentro una funzione, elenca una lista con gli argomenti della funzione. Se all'interno di un file che è stato incluso, elenca i nomi dei file inclusi. |
Example #1 Esempio di 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';
?>
Fornisce risultati simili al seguente esempio quando si esegue /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" } }