2010-05-12 29 views

回答

8

一切在目前的範圍:

print_r(get_defined_vars()); 

我不認爲這是轉儲所有作用域的所有變量,因爲你必須實際運行這些功能的解決方案/方法來獲得一個完整的和所有可用變量的完整映射(可以在運行時創建,添加和刪除變量)。

您可能需要查看單元測試或代碼覆蓋率工具,以查看您是否可以使用這些區域中的任何內容,但這將會花費很多工作量。

你需要做什麼?

+0

我正在處理一個巨大的項目(我的意思是,真的,數十萬行代碼)。我有時需要看到發生了什麼的「更大的」圖片。 – 2010-05-12 22:47:07

+0

@我明白了。你繼承了這個項目嗎?代碼是否記錄在案?這種概述最好通過phpdoc可以理解的在線文檔來實現。 – 2010-05-13 08:46:42

+0

@pekka - 除了關於文檔的所有假設,你都是正確的:-DDD(即沒有文檔,沒有足夠意義的符號名稱等) – 2010-05-13 12:53:13

2

var_dump($ GLOBALS);

如果在運行此語句時沒有定義變量,則無法將它說成具有值。 「其他」範圍中的變量不存在。

{ 
    $a = new myClass(); 
    do stuff 
    $a->destroy(); 
} 
print "$a has no meaning in this context"; 
+0

你是什麼意思「不存在「,他們仍然記憶,對吧? – 2010-05-14 01:04:38

+0

我想我看,在函數調用裏面想一下函數調用裏面的函數調用,而我必須知道它裏面的最內部函數。 – 2010-05-14 01:05:48

+0

Ahhhh ...這是在這裏討論http://stackoverflow.com/questions/3418413/get-variables-in-scope-at-each-php-backtrace-level無濟於事 – 2013-01-20 05:48:58