P粉2918868422023-08-01 00:11:59
debug_backtrace()
提供了調用堆疊,可以追蹤你所在的位置,但你已經處於最外層(即全域)作用域,並且沒有進行任何調用,所以沒有調用堆疊可用。
print_r(debug_backtrace());
產生的結果是:
Array ( )
如果將程式碼放在一個函數中,你將會得到一個包含一個項目的呼叫堆疊:
function foo() { print_r(debug_backtrace()); } foo();
產生的結果是:
Array ( [0] => Array ( [file] => ... [line] => 6 [function] => foo [args] => Array ( ) ) )
如果你想在全域作用域下獲得一些(最小的)調試信息,你可以將所有的程式碼封裝在一個閉包中,然後立即內聯調用它:
(function() { // all your code here print_r(debug_backtrace()); })();
結果
Array ( [0] => Array ( [file] => ... [line] => 5 [function] => {closure} [args] => Array ( ) ) )
關於會話/環境數據,只有在將它們作為參數傳遞時,它們才會顯示出來:
foo($_ENV);
結果:
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 ) ) ) )
如果你想像這樣記錄會話/環境變量,最好的方法可能是明確地將它們輸出:
error_log(print_r($_ENV, true));
error_log(print_r($_SESSION, true));