我如何知道在PHP函數的調用者?PHP:我怎麼知道函數的調用者?
回答
不知道爲什麼你會關心這個,但你可以從debug_backtrace()
函數中得出結論。
我不知道你爲什麼要這樣,但讓我提出一個巨大的紅色旗幟 - 寫代碼,其行爲取決於來電者產生非常非模塊化,難以調試和徹頭徹尾的瘋狂計劃。這就是說,如果你有一個正當的理由,像...
function caller()
{
$stackTrace = debug_backtrace();
if (count ($stackTrace) < 1)
return "None";
else if (count ($stackTrace) < 2)
return "Global scope " . $stackTrace[count($stackTrace)]["file"];
else
return $stackTrace[count($stackTrace) - 1]["function"];
}
(這被註銷的袖口,所以可能不會在所有情況下的魯棒性。見http://uk3.php.net/manual/en/function.debug-backtrace.php更多)
我怎麼知道在PHP函數的調用者?
將它傳遞給被調用者。這是最正常的方法。
你是用「(這個)」還是其他類型? – ubiquibacon 2010-07-25 21:11:02
@用'$ this','__FUNCTION__','__CLASS__',不管你在被調用者需要什麼,只要不用'debug_backtrace'去做,除非你需要回溯。 – Gordon 2010-07-25 21:12:50
- 1. 我怎麼知道OkHttp調用我從
- 2. 我怎麼知道時區 - PHP
- 3. 服務怎麼知道來電者?
- 4. 生產者 - 消費者:怎麼知道通知prodcution完成
- 5. 怎麼知道失敗使用PHP
- 6. 我可以知道如何調用PHP函數嗎?
- 7. 我怎麼知道BeginAcceptSocket回調需要IAsyncResult參數?
- 8. 我怎麼知道什麼TextView是clickbale?
- 9. 我怎麼知道手機的電量
- 10. 我怎麼知道QTreeView是空的?
- 11. 我怎麼能知道的信號
- 12. 我怎麼知道國家的名字?
- 13. 我怎麼能知道的AppDelegate
- 14. 怎麼知道特定值在PHP
- 15. Django模板,我怎麼知道哪個模板被調用
- 16. 我在IFRAME中,我怎麼知道在PHP中?
- 17. 知道調用函數的組件
- 18. 我怎麼知道服務名稱?
- 19. Android,我怎麼知道動畫完成?
- 20. 解釋我不知道該怎麼辦?
- 21. 我怎麼能知道一個PrintWriter
- 22. 我不知道該怎麼辦
- 23. 對於.xib文件,我怎麼知道文件的所有者是什麼類?
- 24. 我怎麼能知道我的數據適合內存
- 25. 你怎麼知道R中的哪些函數被標記爲調試?
- 26. PostgreSQL - 我怎麼知道哪個函數使用了一個類型?
- 27. 我應該知道什麼函數來測試php代碼?
- 28. 怎麼知道綁定參數的PDO在PHP
- 29. 我不知道該怎麼做這個PHP代碼
- 30. 我不知道該怎麼稱呼它php/css錯誤tho
[PHP:朋友類和非語言調用者函數/類]的可能重複(http://stackoverflow.com/questions/2528671/php-friend-classes-and-ungreedy-caller-function-class)和[a情侶](http://stackoverflow.com/search?q=debug_backtrace+php)。您還應該通讀[生產代碼中的PHP debug_backtrace?](http://stackoverflow.com/questions/346703/php-debug-backtrace-in-production-code) – Gordon 2010-07-25 20:56:29