(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
debug_backtrace — Genera un backtrace
debug_backtrace() genera un backtrace di PHP.
optionsQuesto 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"
}
}