2012-03-15 44 views
0

可能重複:
How to find out where a function is defined?
get filename of extended class確定什麼是功能被稱爲文件

在PHP非面向對象代碼的工作,我有時會發現自己挖通過代碼找到像「」那樣簡單的功能,其中該功能位於「。

function myfunction(){ 
    where_is_this_function(); 
} 

我的問題是,我怎麼能找到哪裏是哪裏的where_is_this_function()坐在

我知道有調試器,在文件中查找工具和其他選項的文件,但我想知道是否有任何編程方式都可以這樣做,因爲有時它更方便。

get_thefunction_file('where_is_this_function()') 
+0

也,debug_backtrace()輸出有時太混亂對於 – Jonathan 2012-03-15 13:54:07

+0

看一看[反射](http://php.net/manual/en/book.reflection.php) – 2012-03-15 13:56:05

+2

在一個旁註,任何像樣的IDE將允許您在該功能上按Ctrl + LeftMouse(或其他快捷方式)將您帶到那裏。 – Gordon 2012-03-15 13:59:28

回答

1

您可以在函數中使用debug_print_backtrace();它應該漂亮地打印它是如何調用,並從哪個文件

function myfunction(){ 
    debug_print_backtrace();//where_is_this_function(); 
} 

和輸出編號列表類似

#0 myfunction() called at [/tmp/include.php:10] 
#1 include(/tmp/include.php) called at [/tmp/test.php:3] 
0

如果」只關心函數在代碼中工作的位置,而不需要信息運行時,開發IDE(如NetBeans或Eclipse)具有特定的「跳轉到聲明」功能。

例如,在NetBeans中,只需將光標放在「where_is_this_functiob」文本內的某個位置,然後按CTRL + B即可。 NetBeans然後嘗試加載文件並直接跳轉到函數定義。

我很確定其他編輯有一些類似的功能。

+0

嗨,謝謝你的回答。 是的,我知道有選擇,我只是好奇的方式來做它代碼明智:) – Jonathan 2012-03-15 14:02:53

相關問題