我已經看到幾乎所有的PHP腳本都包含一個類文件。作爲新手,我不明白爲什麼這是必需的,而不是在單個頁面上編寫腳本。這背後是什麼概念。任何人都能清楚地解釋這一點嗎爲什麼在PHP中需要class文件?
回答
管理。對於一個大項目,您是否願意擁有500個小文件,每個小文件都包含一個類,可以單獨進行編輯和更改,或者包含一切的一個巨大的50 MB腳本?
首先,這是一種更乾淨的方法,您不需要搜索您需要的類的大文件。其次,如果您需要在其他地方上課,則必須重新編寫該課程,但是如果您將其放在單獨的文件中,則可以在任何需要的地方使用它。
謝謝...爲您的即時回覆 – homlyn 2011-03-16 18:38:25
你認真考慮包含100MB數據的1file有趣嗎? 想象一個包含一個文件的腳本,需要多少時間才能加載瀏覽器? 您認爲您的服務器能夠處理的讀取100MB,而你不得閱讀超過16MB以上(爲默認值,它可以提高)
它不是需要,它只是經常的原因有很多更好的解決方案。
代碼複用 一類應該是代碼的自包含的,定義明確的片在許多不同的地方和情況可重複使用。
黑匣子編碼 在這種情況下,該類的用戶不需要知道它是如何工作的,只需要知道如何使用它。例如,當我爲我的機器人猴子編寫代碼時,我可能會寫一個香蕉類。然後我可以把這個給你,你會知道如何使用$ banana-> peel();而無需瞭解複雜的服務器< - >爲了編寫課程而必須處理的猴子交互。
你可以走開並編寫自己的Robotic Orang-utan軟件,並重新使用我的Banana類,而不用編輯如分號。
可擴展性 鑑於我上面的香蕉類,有經驗的程序員可以擴展該類以添加throw()方法。他們甚至可能在不理解班級內部工作的情況下做到這一點。
還有其他原因。很難解釋爲什麼類沒有解釋類本身就很有用。
總之,一旦你瞭解了課程,你就會明白你爲什麼要使用它們!
- 1. 爲什麼需要Thread .__ init __()在Class中?
- 2. 爲什麼在寫入PHP文件後需要`fclose`?
- 3. 爲什麼我們在.class文件的開頭需要一個幻數?
- 4. 爲什麼我需要Default.aspx.designer.cs文件?
- 5. 爲什麼一些java代碼/石英代碼需要.class文件?
- 6. 爲什麼PHP需要「執行」權限才能寫入文件?
- 7. Ruby需要'文件'不起作用,但需要'./file'。爲什麼?
- 8. 有什麼問題,需要在文件
- 9. 爲什麼javac需要.java擴展名和java不需要.class擴展名
- 10. 爲什麼需要
- 11. 爲什麼我不能在Ruby中需要'string.rb'文件
- 12. 爲什麼在stdafx.h中不需要頭文件?
- 13. 爲什麼不需要在.h文件中聲明此方法?
- 14. 爲什麼某些組件需要「需要UIExplorerBlock」和「需要UIExplorerPage」?
- 15. 爲什麼ng-class甚至需要額外的引號
- 16. 爲什麼「case class」不需要「new」來創建新對象
- 17. 爲什麼我需要=(class)...當我已經宣佈課程時?
- 18. 爲什麼「[self class] == [super class]」?
- 19. 爲什麼皮膚文件中的控件需要runat =「server」?
- 20. 爲什麼要記住class屬性?
- 21. 爲什麼在ListCellRenderer中需要removeAll()?
- 22. 爲什麼摩卡需要在devDependencies中?
- 23. 爲什麼我們在ASP.NET中使用.class文件?
- 24. 爲什麼在Cake PhP Controller索引函數中需要?
- 25. 爲什麼我需要我需要在子類中實現IDisposable()
- 26. 爲什麼ivars在iOS中不需要時可可需要?
- 27. 爲什麼意圖需要上下文?
- 28. 爲什麼getRelativeTimeSpanString需要上下文?
- 29. 在vb6中需要什麼?
- 30. 什麼是#import和@class,爲什麼它們都在.h和.m文件中?
當然一個巨大的50兆字體! – RDL 2011-03-16 18:34:47
喲喲這是偉大的答案和非常簡單的消化感謝的人... – homlyn 2011-03-16 18:35:01