2009-08-16 40 views
1

所以我對PHP的面向對象部分有點困惑。馬上我會爲我對PHP和數據庫知之甚少的事實表示歉意。爲什麼在你使用MySQL數據庫時創建對象?

我的問題是,當你在做,比如說,一個數據庫來保存它的用戶,爲什麼你想使一個類/對象爲用戶時,你可以拉從數據庫中的信息?

另外,如果你是做一個對象/類,其中存儲的對象的數據?例如,如果我有一個帶有用戶名和電子郵件的類,並且創建了該對象,它是否會被存儲?

感謝您花時間幫助學習noob!

回答

6

我的問題是,當每 你的決策說一個數據庫來保存用戶在裏面, 爲什麼你想使一個 類/對象爲用戶,當你 可以只拉從數據庫中的信息。

你讓對象抽象出特定功能。如果你轉向Microsoft SQL Server(假設地說),會發生什麼?您只需編輯對象的實現,而不是更新您的整個網站。

此外,如果你是做一個 對象/類存儲爲 對象的數據在哪裏?像使用 用戶名和電子郵件的課程,以及我製作該 對象,它們是否被存儲。

相同的位置的任何其它變量。

0

數據庫以一種表格方式存儲數據,該表格設計得很快捷。對象更加靈活;他們可以是樹木,他們可以是列表,他們可以是小工具,或者是其他萬物之外的其他東西。它們可以表示演示文稿,數據或結構。有時它們甚至更快(當它更容易在飛行中計算值而不是從數據庫中檢索它時)。數據庫非常強大且重要,但僅適用於Web應用程序執行的一小部分任務。其餘的由對象變得更容易。

1

有爲什麼你想使用的只是原始數據庫訪問頂部一些抽象在任何合理的大型軟件系統的原因有很多。如果你正在尋找一種面向對象的方法,你應該考慮到面向對象範例的核心思想之一就是對象封裝了對數據作用的數據和邏輯。

舉一個具體的例子。假設您的應用程序(UI)的一部分需要顯示用戶信息,包括格式良好的用戶名。在面向對象的世界中,您可以擁有一個User對象,它將在數據庫中存儲數據的本地副本,並公開像getFormattedName()之類的方法。現在,您的應用程序的其餘部分可以使用該代碼,而無需瞭解數據庫,甚至無需知道名稱的格式。另一方面,如果您只是直接從數據庫中提取數據,那麼應用程序的UI部分(並不關心數據庫)仍然需要知道如何從數據庫中獲取有關用戶的信息,以及如何很好地格式化用戶名稱。

1

簡單地說,有一個數據庫表中沒有拍攝,但涉及到的條目的邏輯。數據庫只存儲原始數據。如何使用數據以及它如何與應用程序的其餘部分進行交互應該在對象方法中捕獲。

1

你錯過了面向對象設計的基礎。對象完全忽略繼承,對象將信息/數據和函數/過程/操作組合到稱爲對象的單個單元中。該對象執行操作(方法/行爲/功能/過程)並具有屬性。數據庫將不具有整套操作/程序信息。根據設計,數據庫將只包含數據,並且不知道如何使用數據或數據的功能。

相關問題