3 回答

TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個(gè)贊
該debug_backtrace()
函數(shù)是了解這一點(diǎn)的唯一方法,如果你是懶惰的,那么你應(yīng)該GetCallingMethodName()
自己編寫代碼的另一個(gè)原因。戰(zhàn)斗懶惰!:d

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊
從PHP 5.4開始,你可以使用
$dbt=debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS,2);
$caller = isset($dbt[1]['function']) ? $dbt[1]['function'] : null;
這不會(huì)浪費(fèi)內(nèi)存,因?yàn)樗雎粤藚?shù)并僅返回最后2個(gè)回溯堆棧條目,并且不會(huì)在此處生成通知作為其他答案。

TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個(gè)贊
您還可以使用php異常提供的信息,這是一個(gè)優(yōu)雅的解決方案:
function GetCallingMethodName(){
$ e = new Exception();
$ trace = $ e-> getTrace();
//位置0將是調(diào)用此函數(shù)的行,因此我們忽略它
$ last_call = $ trace [1];
的print_r($ last_call);
}
function firstCall($ a,$ b){
theCall($ a,$ b);
}
function theCall($ a,$ b){
GetCallingMethodName();
}
firstCall('lucia','php');
你得到這個(gè)......(瞧?。?/p>
排列
(
[file] => /home/lufigueroa/Desktop/test.php
[line] => 12
[function] => theCall
[args] =>數(shù)組
(
[0] =>露西亞
[1] => php
)
)
- 3 回答
- 0 關(guān)注
- 3197 瀏覽
添加回答
舉報(bào)