2012-03-03 67 views
0

可能重複:
Caller function in PHP 5?
php: determine where function was called from當前方法是否可以知道調用了哪種方法?

比方說

function item_description(){ 
    $var = 6; 
    description($var); 
} 

function item_description_extended(){ 
    $var = 7; 
    description($var); 
} 

function description(){ 
    if(called_from_item_description){ 
     echo 6; 
    }else{ 
     echo 7; 
    } 
} 

我知道這個功能是沒有意義的......但在這裏,我的問題是,如果我可以知道什麼方法叫做descrption()

+2

請參閱http://stackoverflow.com/questions/190421/caller-function-in-php-5 – 2012-03-03 17:43:49

+0

我相信沒有,但可以保留狀態在會話中,全局變量或其他東西,並從那裏寫入/讀取函數的名稱,但它有點混亂 – dotoree 2012-03-03 17:45:46

回答

2

http://us2.php.net/manual/en/function.debug-backtrace.php

debug_backtrace會告訴誰給你打電話

+0

追溯會告訴你*太多*。雖然這可行,但不幸的是我相信函數的名字前面加上了'debug_'作爲前綴。我之前做過這件事,經過考慮後,意識到這是由於糟糕的設計選擇造成的,問題的根源在其他地方解決了。 – Dan 2012-03-03 18:34:24

相關問題