PHP OOP与程序的简单解释?

问题描述 投票:97回答:5

我想学习PHP并希望获得关于OOP和Procedural的想法。我阅读了一些关于OOP和Procedural的其他博客和教程,但我仍然无法理解这种方法。

OOP与程序

  1. 我应该学习哪些?
  2. 什么是代码差异?有什么影响?
  3. PHP框架如何帮助OOP aproach? (我想学习CodeIgniter)
  4. 程序是否需要框架?

我真的想知道两者的代码差异,我对OOP的理解是你创建一个类似的,它可以访问。 (我不知道如果那是正确的)。

谢谢!

php oop procedural-programming procedural
5个回答
262
投票

背景:你要求一个“简单的解释”,它表明:

  1. 你想要一个没有行话的严肃概述
  2. 你想要的东西可以帮助你从一开始就学习
  3. 你发现没有两个人以同样的方式回答这个问题,而且令人困惑。这就是你在这里要求一个简单解释的原因。是?

Short No-Jargon答案:

  1. 许多介绍性解释迅速进入“OOP现实世界”的例子。那些可能比帮助更容易混淆,所以现在可以随意忽略它。
  2. 您可以将源代码简单地视为功能的“块”,恰好将其保存到单个文件中。
  3. 组织这些“块”有不同的方法;取决于编程语言的惯例,开发人员的背景和培训,或仅仅是普通的个人偏好。
  4. OOP和程序编程只是两种主要的,通常认可的方法,用于组织和安排代码的“块”。

Long No-Jargon答案:

程序与OOP只是计算机编程基本问题的一个方面:如何使代码易于理解,以及专业维护的小菜一碟。实际上,您可以编写遵循OOP的一些原则的“程序”代码,因此这两个代码不一定是对立的。

一旦你学会了other object-oriented programming languages,你的理解就会真正增长,其中,PHP是一个“新生儿”。

以下是您在构建经验时将学到的内容的快速概述:

  • 您可以编写执行有用任务的PHP源代码
  • 您可以将有用的任务组织成代码的“块”
  • 您可以独立于保存它们的单个文件来考虑代码的“块”
  • 有时,代码的“块”将根据您传入的参数表现不同
  • 接受参数的代码块被称为“函数”
  • 函数可以“分块”在一起,有不同的方法: 例如:你可能只有一个大PHP文件,其中包含你一生中所写的所有函数,按函数名称的字母顺序列出 例如:您可以拥有多个PHP文件,这些PHP文件的功能按主题划分在一起[例如,用于执行基本字符串操作的函数,用于处理数组的函数,用于文件输入/输出的函数等]
  • OOP是一种将“分块”功能组合成“类”的特殊方式
  • Class只是另一个级别的“分块”代码,因此您可以将其视为一个统一的整体
  • 类可以被认为是方法和属性的“分块” methods只是以某种有意义的方式在逻辑上彼此相关的函数。 “方法”和“功能”这两个词基本上是同一件事的两个不同术语。 属性只是与类相关的数据值。这些值是故意不与任何单个函数隔离的值,因为类中的多个函数应该可以访问它们。 例如:如果你的类有一堆做天文学的方法,那么类的属性可能是所有天文学方法需要知道的某些着名数字的值(比如Pi,光速,特定行星之间的距离,等等。)。 这是大多数OOP解释变得混乱的地方,因为它们分支到“real world examples”,可以很快脱离主题。通常,“现实世界”是对特定个体的本体论观点的委婉说法。只有在您已经足够好地理解这个概念并将其传授给其他人之后,这才有用。 要理解OOP而不会产生混淆,您现在可以跳过“真实世界”示例,只关注代码。类只是一种将函数(也称为方法)和属性(也称为数据)作为PHP代码存储在一个或多个相关“块”中的方法,其中每个“块”处理特定主题或功能。这就是你需要知道才能开始。
  • 类非常有用,因为它允许您以非常高的级别组织代码,使您易于理解,使用和维护。
  • 当有人写了很多函数,并将它们组织成很多类,并让它们以一种很酷的方式一起工作时,它们将整个事物打包在一起并称之为“框架”。
  • 框架只是一个或多个人同意的下一个最高级别的“分块”(包括编码风格和惯例),因为他们喜欢代码的组织方式,它适合他们的工作方式,偏好,价值观,世界计划统治等

也可以看看


22
投票

OOP只不过是一种设计模式。如果您刚刚开始,那么通过专注于程序方法来学习基础知识。最重要的是,熟悉循环,条件和调用其他过程等基本原则。

在创建过程代码时,通过在单个源文件中添加相关方法来养成习惯。学会将您的程序划分为逻辑单元,然后您就已经开始变得面向对象了。基本上,一个对象只不过是一个彼此相关的方法集合,仅仅因为它们在同一组数据上运行。 (这里不是数据库,而是应用数据!)

OO主要用于通过将所有内容划分为简单块来使代码更具逻辑性。通过组合正确的块,您可以获得完整的应用程序。 OO不是一个可以解决你所有问题的银弹或金锤。但它的作用是让您的代码更容易理解。

然后,有些人仍然设法用物体制造一个完整的混乱,只需将它们变成具有数百种方法的巨大超级物体。这些对象与常规程序方法没有太大差别,仅仅因为大量的方法在没有任何实际逻辑的情况下组合在一起。当人们开始过快地操作OOP时,这是一个很容易犯的错误。


6
投票

你应该学习两者。对象只是存在的众多可能抽象中的一种,而抽象是编程最终的全部内容。也就是说,从程序性的东西开始,然后再添加对象,因为PHP对象的内部结构无论如何都是程序性的。

至于框架;首先要学习语言的基础知识,编写一次性实验程序等。稍后您可以熟悉框架并考虑自己是否在某些环境中发现其中一些有用。它们绝对不是强制性的。


6
投票

程序php和oop使用相同的php代码。然后唯一不同的是程序性,你专注于一个任务就是这样。在oop中,您可以使用可以在代码的许多不同区域中重复使用的模式或块来组织代码。

简单的答案是,你需要了解和理解php。你可以在php.net上学习它。一旦理解了它,就可以开始将代码组织成chucks。

程序代码使用函数,变量。

一旦掌握了一些东西,就可以开始将函数和变量组织到类中。我们开始将函数称为方法和变量作为属性。

祝好运。


5
投票

添加上面的好答案。您应该将OOP视为编码风格的自然进展 - 当您开始编写小程序时,您可能只需要将几行PHP代码组合在一起,然后将它们分组到函数中,您编写的函数越多,您可能会觉得需要更好地组织他们上课。 OOP只是让您的代码更好地构建代码 - 从而实现更好的代码维护。

© www.soinside.com 2019 - 2024. All rights reserved.