所以我对PHP的面向对象部分感到有点困惑。我会立即为我对PHP和数据库知之甚少而道歉。
我的问题是当你制作一个数据库来容纳用户时,为什么你只想从数据库中提取信息时为这个用户创建一个类/对象?
另外,如果你要创建一个对象/类,那么存储对象的数据是什么?例如,如果我有一个带有用户名和电子邮件的类,并且我创建了该对象,它是否会被存储?
感谢您花时间帮助学习菜鸟!
答案 0 :(得分:6)
我的问题是你的制作时间 说一个数据库来容纳用户, 你为什么要做一个 你的那个用户的类/对象 可以从数据库中提取信息。
您可以使对象抽象出特定的功能。如果转移到Microsoft SQL Server(假设说),会发生什么?您只需编辑对象的实现,而不是更新整个网站。
另外,如果你要做一个 object / class where的数据 对象存储?就像一个有一个类的 用户名和电子邮件,我这样做 对象,它是否被存储。
与任何其他变量相同的地方。
答案 1 :(得分:1)
在任何合理大型的软件系统中,为什么要在原始数据库访问之上使用一些抽象,有很多原因。如果您正在研究面向对象的方法,您应该考虑面向对象范例的核心思想之一是对象封装了作用于该数据的数据和逻辑。
让我们举一个具体的例子。假设您的应用程序的一部分(UI)需要显示用户信息,包括格式良好的用户名。在OO世界中,您可以拥有一个User对象,该对象将数据的本地副本存储在数据库中,并公开getFormattedName()等类似的方法。现在,您的应用程序的其余部分可以使用该代码,而无需了解数据库,甚至无需知道名称的格式。另一方面,如果您只是直接从数据库中提取数据,那么应用程序的UI部分(实际上并不关心数据库)仍然必须知道如何从数据库中获取有关用户的信息,以及如何格式化用户名称。
答案 2 :(得分:1)
简而言之,数据库表中没有捕获逻辑,但与条目相关。数据库仅存储原始数据。应该如何在对象方法中捕获数据的使用方式以及它与应用程序其余部分的交互方式。
答案 3 :(得分:1)
你缺少面向对象设计的基础。完全忽略继承,Objects将信息/数据和函数/过程/操作组合到一个称为对象的单元中。该对象执行操作(方法/行为/函数/过程)并具有属性。数据库不具有整套操作/程序信息。按照设计,数据库只包含数据,不知道数据的使用方式或数据的用途。
答案 4 :(得分:0)
数据库以表格方式存储数据,旨在快速完成。物体更加灵活;它们可以是树木,它们可以是列表,它们可以是小部件,也可以是一百万件中的任何其他东西。它们可以表示演示,数据或结构。有时它们甚至更快(当更容易计算动态值而不是从数据库中检索它时)。数据库非常强大且重要,但仅适用于Web应用程序执行的一小部分任务。其余部分通过物体变得更容易。