有沒有人知道我是否被靜態調用(Classname :: function)或在PHP方法內的對象($ classInstance-> function)內部的方式嗎?如何判斷我是靜態對象還是對象?
回答
誠然不是隨便......但肖恩科茨有cool and fairly simple approach to finding this out:
$isStatic = !(isset($this) && get_class($this) == __CLASS__);
這樣做,歡呼! – 2009-10-30 03:59:25
該博客文章的URL現在是http://seancoates.com/blogs/schizophrenic-methods – joachim 2014-01-02 17:20:38
@joachim謝謝 - 更新! – 2014-01-02 22:55:37
檢查$this
設置和等於類。對於靜態調用,實例調用和不等於(或空)將相同。
這實際上並不正確。在接受的答案中查看我鏈接的博客文章。如果一個方法被靜態調用,那麼'$ this'可以被設置,它甚至可能不屬於包含的類。 – scoates 2012-12-10 17:21:35
- 1. 如何判斷我的對象的值是float還是int?
- 2. 有沒有辦法判斷對象是類還是對象?
- 3. 如何判斷它是對象還是數組?
- 4. 如何判斷javascript對象是圖片還是畫布?
- 5. MooTools:如何判斷對象是數組?
- 6. 如何判斷對象是否爲空?
- 7. 如何判斷JavaScript對象是否有子對象
- 8. 如何判斷對象是否爲RegExp對象?
- 9. 如何判斷空對象?
- 10. 動態對象 - 如何判斷屬性是否被定義?
- 11. 如何判斷跳轉是絕對還是相對?
- 12. 如何判斷linq到sql對象是新的,修改還是未更改?
- 13. iOS:如何判斷類型id的對象是類還是協議
- 14. C#:如何判斷對象是自定義類還是本機類型/.NET類?
- 15. 如何判斷傳遞給函數的參數是對象還是字符串?
- 16. javascript:我如何定義是對象jQuery對象還是其他對象?
- 17. COM對象是動態還是靜態的
- 18. 當引發異常時,是靜態對象還是本地對象?
- 19. 如何判斷一個JSON對象是否是一個數組?
- 20. Python是否有靜態對象,堆棧對象和堆對象?
- 21. 我是否需要處理靜態對象內定義的非靜態對象?
- 22. 我應該聲明我的對象是全局的還是靜態的?
- 23. DDD:連接對象是實體對象還是值對象?
- 24. C++/CLI如何判斷句柄是否指向任何對象
- 25. 如何判斷TypeScript對象的類型?
- 26. 如何從類對象中判斷python非類對象
- 27. 如何判斷庫是COM還是DCOM?
- 28. 如何判斷對象是否爲Mockito模擬?
- 29. Javascript如何判斷兩個對象是否相同?
- 30. 如何判斷一個對象是否支持標量比較?
這就是static關鍵字的用處。如果你將兩者混合起來,你應該會收到警告。 – 2009-10-30 02:50:09
靜態函數不應該被非靜態調用,並且不應該靜態調用非靜態方法。 PHP中的另一件事情應該會產生一個致命的錯誤,但不會。 – 2009-10-30 03:25:12
在這種情況下,我不得不迅速修復一個錯誤,以便上牀睡覺:)但是你說得對,當然。 – 2009-10-30 04:01:11