Rumah > Soal Jawab > teks badan
P粉2918868422023-08-01 00:11:59
debug_backtrace()
Tindanan panggilan disediakan untuk menjejaki di mana anda berada, tetapi anda sudah berada dalam skop paling luar (iaitu global) dan belum membuat sebarang panggilan, jadi tiada tindanan panggilan tersedia.
print_r(debug_backtrace());
Hasil yang dihasilkan ialah:
Array ( )
Jika anda meletakkan kod di dalam fungsi, anda akan mendapat timbunan panggilan yang mengandungi satu item:
function foo() { print_r(debug_backtrace()); } foo();
Hasil yang dihasilkan ialah:
Array ( [0] => Array ( [file] => ... [line] => 6 [function] => foo [args] => Array ( ) ) )
Jika anda ingin mendapatkan beberapa maklumat penyahpepijatan (minimum) dalam skop global, anda boleh membungkus semua kod dalam penutupan dan memanggilnya sebaris dengan segera:
(function() { // all your code here print_r(debug_backtrace()); })();
Hasilnya
Array ( [0] => Array ( [file] => ... [line] => 5 [function] => {closure} [args] => Array ( ) ) )
Berkenaan data sesi/persekitaran, ia hanya akan dipaparkan jika anda melepasinya sebagai parameter:
foo($_ENV);
Hasil:
Array ( [0] => Array ( [file] => ... [line] => 6 [function] => foo [args] => Array ( [0] => Array ( [TERM] => xterm [PATH] => /usr/bin:/bin [LANG] => C [SHELL] => /bin/sh [MAIL] => /var/mail/nobody [LOGNAME] => nobody [USER] => nobody [HOME] => /tmp ) ) ) )
Jika anda ingin log pembolehubah sesi/persekitaran seperti ini, cara terbaik mungkin adalah dengan mengeluarkannya secara eksplisit:
error_log(print_r($_ENV, true));
error_log(print_r($_SESSION, true));