我如何知道在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. 如何知道函數的調用者
- 3. Vim和php:我怎麼知道我在哪個函數?
- 4. 我怎麼知道時區 - PHP
- 5. 服務怎麼知道來電者?
- 6. 在netbeans中,我怎麼知道我在哪個函數/方法?
- 7. 生產者 - 消費者:怎麼知道通知prodcution完成
- 8. 怎麼知道失敗使用PHP
- 9. 你怎麼知道PHP中的調用方法類型?
- 10. PHP - 我怎麼知道爲什麼mssql_connect()不起作用?
- 11. 我不知道爲什麼的OnDraw()函數被調用重複
- 12. 用於事件的參數是什麼?我怎麼知道?
- 13. 我怎麼知道BeginAcceptSocket回調需要IAsyncResult參數?
- 14. 我可以知道如何調用PHP函數嗎?
- 15. 我怎麼知道什麼TextView是clickbale?
- 16. ActiveMQ:當持久訂閱者被移除時,我怎麼知道?
- 17. 如何知道函數的調用者類
- 18. 怎麼知道使用VBA
- 19. 我怎麼能知道的信號
- 20. 我怎麼能知道的AppDelegate
- 21. 我怎麼知道QTreeView是空的?
- 22. 我怎麼知道手機的電量
- 23. 我怎麼知道國家的名字?
- 24. 怎麼知道特定值在PHP
- 25. XCTest:我怎麼知道哪個XCTestExpectation調用了'fulfill'?
- 26. Django模板,我怎麼知道哪個模板被調用
- 27. node.js async.each回調,我怎麼知道它什麼時候完成?
- 28. 我在IFRAME中,我怎麼知道在PHP中?
- 29. 我怎麼能知道mongo數據未使用的空間
- 30. 我怎麼知道服務名稱?
[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