debug_backtrace()
提供了調(diào)用堆棧,可以追蹤你所在的位置,但你已經(jīng)處于最外層(即全局)作用域,并且沒(méi)有進(jìn)行任何調(diào)用,所以沒(méi)有調(diào)用堆??捎?。
print_r(debug_backtrace());
產(chǎn)生的結(jié)果是:
Array ( )
如果將代碼放在一個(gè)函數(shù)中,你將會(huì)得到一個(gè)包含一個(gè)項(xiàng)的調(diào)用堆棧:
function foo() { print_r(debug_backtrace()); } foo();
產(chǎn)生的結(jié)果是:
Array ( [0] => Array ( [file] => ... [line] => 6 [function] => foo [args] => Array ( ) ) )
如果你想在全局作用域下獲得一些(最小的)調(diào)試信息,你可以將所有的代碼封裝在一個(gè)閉包中,然后立即內(nèi)聯(lián)調(diào)用它:
(function() { // all your code here print_r(debug_backtrace()); })();
結(jié)果
Array ( [0] => Array ( [file] => ... [line] => 5 [function] => {closure} [args] => Array ( ) ) )
關(guān)于會(huì)話/環(huán)境數(shù)據(jù),只有在將它們作為參數(shù)傳遞時(shí),它們才會(huì)顯示出來(lái):
foo($_ENV);
結(jié)果:
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 ) ) ) )
如果你想像這樣記錄會(huì)話/環(huán)境變量,最好的方法可能是顯式地將它們輸出:
error_log(print_r($_ENV, true));
error_log(print_r($_SESSION, true));