6
A
回答
10
PHP沒有像Ruby那樣有mixin。也就是說,在定義了一個類後,你不能改變任何有關類的東西,並且在創建它之後,你不能在一個實例中增加新的方法。 PHP 只有具有普通舊式香草單繼承機制,接口和5.4中的composing traits。
PHP可能對Ruby模塊最接近的東西是一個類。 PHP可能對Ruby mixin最接近的是一個特性,但特性是而不是動態。在定義類時,它們必須被任何實現類引用。它們不能在運行時添加或修改,並且適用於整個類,而不適用於單個實例。
儘管PHP 5.3具有名稱空間,但它們僅限於保存函數,類,常量,特徵和接口,意思是您無法將變量定義爲名稱空間的第一級成員。試圖這樣做會導致它們在根名稱空間中被定義,這肯定不是任何人想要的。此外,沒有命名空間繼承機制,只有命名空間參考機制。
1:雖然可以在通過簡單引用它們創建對象後添加實例變量(屬性),但這被認爲是不好的做法。屬性也可以包含匿名函數,但通過這種方法來模擬添加方法也是不好的做法。
+0
我喜歡你的例子,但5.3中確實存在名稱空間常量。 – 2014-10-23 13:28:01
相關問題
- 1. 類似於跑臺概念
- 2. C++的模塊概念
- 3. Swift中的閉包概念類似於Javascript中的閉包嗎?
- 4. 一個類似於as3中指針的概念?
- 5. HDFS中Hadoop塊的概念
- 6. 關於PHP中的Web技術概念
- 7. Ruby OOP正確的概念?
- 8. CoreData/SQLite有類似於數據庫概念的東西嗎?
- 9. 在Swift中是否有類似於C#中的事件的概念?
- 10. ajax jQuery的概念在php
- 11. 類概念SAPUI5
- 12. 概念類圖
- 13. 類概念
- 14. R.java類的概念
- 15. WPF中的類概念
- 16. 將概念上類似的文檔聚類在一起?
- 17. AS3在非顯示對象中類似於事件冒泡的概念?
- 18. WEB SOCKET PHP概念
- 19. php驗證概念
- 20. 關於RDBMS概念
- 21. 在PHP中,數組的概念
- 22. 其他語言中的「未定義」的任何類似概念?
- 23. 線程和塊概念
- 24. 內容滑塊概念
- 25. hmvc,模塊化分離,模塊化擴展,概念說明
- 26. 有沒有類似於分佈式Ruby的Python模塊
- 27. 他們在Flash/Flex世界有類似HTML/XAML的概念嗎?
- 28. 概念的PHP問題
- 29. PHP:接口的概念?
- 30. 關於封裝的概念
請看這個關於[Abstract Classes and Interfaces](http://stackoverflow.com/q/15960729/263858)之間區別的討論。 – 2014-01-13 19:29:20