我正在尋找一種方法來通過插件類來重載主項目類(ofc不是整個類 - 只有很少的方法,比如標題解析器或者某事)。 這可能嗎?有沒有辦法在PHP中使用OVERLOAD類?
1
A
回答
1
可以擴展類:
class A { public function __get($value){ switch($value){ case "a1": return 1; break; case "a2": return 2; break; default: // error handler goes here return "number out of range"; // or NULL or anything else } } // end of method __get } // end of class A class B extends A { public function __get($value){ switch($value){ case "a1": return 11; break; // we overload value of 1 case "b3": return 3; break; // we add these new properties case "b4": return 4; break; default: // check ancestor's properties return parent::__get($value); } } // end of method __get } //end of class B
+0
它不能解決我的問題 - 核心不知道「B」類,所以調用「A」類。我正在尋找一種插件可以覆蓋由核心執行的操作的方法。 – kiler129
1
有覆蓋方法,例如一些方法runkit。但是this answer到相關的問題表明這些擴展沒有定期維護。
相關問題
- 1. 有沒有辦法在PHP SDK中從Parse獲取所有類?
- 2. 有沒有辦法在smarty模板中使用PHP代碼?
- 3. 有沒有辦法在PHP中使用MSSQL插入數據?
- 4. 有沒有辦法在PHP中繼承ffmpeg_movie類?
- 5. 有沒有辦法在NSArray的類別中使用ObjectType?
- 6. 有沒有辦法在C++中使用類型文字?
- 7. 有沒有辦法在Java類中使用gradle變量
- 8. 有沒有辦法強制php在當前命名空間中使用類?
- 9. 用戶有沒有辦法看到PHP?
- 10. 有沒有辦法使用hql沒有類?
- 11. 有沒有辦法在類之間使用方法?
- 12. 有沒有辦法在Python中的類方法中修改類?
- 13. 有沒有辦法調用「New」類?
- 14. 有沒有辦法在eval中調用類方法?
- 15. 有沒有辦法在eclipse中用方法提取類?
- 16. 在PHP中,有沒有辦法從父類中的子類訪問屬性
- 17. 有沒有辦法在java中的父類中調用函數?
- 18. 有沒有辦法在一個Test類之外使用TestNG DataProvider?
- 19. 有沒有辦法在可調用方法中使用參數?
- 20. 有沒有辦法通過使用sun.misc.Unsafe類強制卸載類?
- 21. 有沒有辦法使用擴展類類型的Java集合?
- 22. 有沒有辦法在java中使用類似於c#的引用(@「」)的方法
- 23. PHP:有沒有辦法獲得方法的返回類型?
- 24. 有沒有辦法在Apache中預加載代碼在PHP中?
- 25. 有沒有辦法在python
- 26. 有沒有辦法在SQL
- 27. 有沒有辦法在PySpark
- 28. 有沒有辦法在NetBeans
- 29. 有沒有辦法在Notepad ++
- 30. 有沒有辦法在UIWebview
你的問題不是很清楚。你什麼意思?你想覆蓋你的主類的幾個選擇方法嗎? – Qqwy
擴展課程?你能否給這個問題多一點背景? – deceze
擴展不適合我。例如,我有「富」類有很多方法,其中之一是「解析」。 我正在尋找方法,其中包括插件類文件重載foo :: parse()[所以當核心調用foo :: parse()插件方法將被執行,而不是從核心的方法] – kiler129