简单的解释PHP OOP vs程序?

我想学习PHP,并希望得到关于OOP和程序的想法。 我读了一些关于OOP和程序的博客和教程,但是我仍然不明白这个方法。

OOP vs程序

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

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

谢谢!

背景:你提出了一个“简单的解释”

  1. 你想要一个没有废话的概述, 没有行话
  2. 你想要一些能够帮助你从一开始就学会的东西
  3. 你已经发现没有两个人用同样的方式回答这个问题 ,这是令人困惑的。 这就是你在这里要求简单解释的原因。 是?

Short No-Jargon答案:

  1. 许多介绍性的解释迅速跳入“OOP现实世界”的例子。 那些可能会比混乱更容易混淆,所以现在可以随意忽略它。
  2. 您可以将源代码简单地视为function的“块”,它恰好被保存到单个文件中。
  3. 组织这些“块”有不同的方法; 取决于诸如编程语言的约定,开发者的背景和培训,或者只是普通的个人偏好。
  4. 面向对象编程和程序编程只是两个主要的,公认的方法论,如何组织和安排这些代码块。

Long No-Jargon答案:

程序与OOP只是计算机编程一个基本问题的一个方面:如何让你的代码容易理解,并且是一块专业维护的蛋糕。 你实际上可以编写遵循面向对象原理的“程序”代码,所以两者不一定是对立的。

一旦你学习了其他面向对象的编程语言 ,你的理解将会真正的增长,其中,PHP是一个“新的块子”。

以下是您在创build体验时所学到的内容的快速概览

  • 您可以编写有用的任务的 PHP源代码
  • 您可以将有用的任务组织成代码的“块”
  • 您可以独立于保存的单个文件来考虑代码的“块”
  • 有时,这些代码块会根据你传入的参数而有所不同
  • 接受参数的代码块称为“函数”
  • 函数可以被“分块”在一起,并且有不同的方法:
    • 例如:你可能只有一个大的PHP文件,其中包含你在整个生活中所写的所有function,按function名称的字母顺序列出
    • 例如:你可以有多个PHP文件,这些文件的function是通过主题[例如,用于基本string操作的函数,用于处理数组的函数,用于文件input/输出的函数等]分块在一起的。
  • 面向对象是一种特殊的“块”function,组合成一个“类”
  • 一个类只是另一个级别的“块”代码,所以你可以把它作为一个统一的整体
  • 一个类可以被认为是一个“块”的方法属性

    • 方法只不过是以某种有意义的方式在逻辑上相互关联的函数。 “方法”和“function”这两个词对于同一个事物基本上是两个不同的术语。
    • 属性只是与类有关的数据值。 这些值是有意不与任何单个函数隔离的,因为类中的所有函数都可以访问它们。
      • 例如 :如果你的class级有一堆天文学方法,那么这个class级的特性可能就是所有天文学方法所需要知道的某些着名数字的值(比如Pi,光速,特定行星之间的距离,等等。)。
    • 这是大多数面向对象解释混淆的地方,因为它们分解成可以快速脱离主题的“ 真实世界范例 ” 。 通常情况下,“现实世界”是某个人的本体论angular度的委婉说法。 只有当你已经理解了这个概念,并把它教给别人的时候,它才会有用。
    • 要理解OOP而不会混淆,现在可以跳过“真实世界”的例子,只关注代码。 类只是一种将函数 (也称为方法)和属性 (又名数据)作为PHP代码存储在一个或多个相关“块”中的方式 ,其中每个单独的“块”处理特定的主题或function块。 这就是所有你需要知道的才能开始。
  • 一个类是非常有用的,因为它允许您以非常高的级别组织您的代码,使您可以轻松理解,使用和维护。

  • 当一个人写了很多function,把他们组织成很多类,并且让他们以一种很酷的方式一起工作的时候,他们把整个东西打包在一起,称之为“框架”
  • 框架只是一个或多个人认同的“块” (包括编码风格和惯例) 的第二高级别,因为他们喜欢代码的组织方式,并且适合他们的工作风格,偏好,价值观,对世界的计划统治等

也可以看看

  • OOP呼吁

面向对象只不过是一种devise模式。 如果你刚刚开始,那么通过关注程序方法来学习基础知识。 最重要的是,熟悉循环,条件和调用其他程序等基本原则。

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

OO主要用于通过将所有内容分割成简单的块来使代码更加合理。 通过结合正确的块,你会得到一个完整的应用程序。 面向对象不是一个银弹或金锤,它将解决你所有的问题。 但是它做的是让你的代码更容易理解。

再一次,有些人仍然设法把物体弄得一塌糊涂,简单地用数百种方法把它们变成巨大的超级物体。 这些对象与常规的程序方法没有多大区别,只是因为大量的方法被组合在一起而没有任何真正的逻辑。 当人们开始OOP太快时,这很容易造成错误。

你应该学习两个。 对象只是现存的许多可能的抽象中的一个,而抽象就是编程最终的目标。 也就是说,从程序性的东西开始,然后添加对象,因为PHP对象的内部是程序性的。

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

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

简单的答案是,你需要知道和理解的PHP。 你可以在php.net上学习。 一旦你了解它,那么你可以开始组织你的代码卡入。

程序代码使用函数,variables。

一旦你得到了一堆东西,你可以开始组织函数和variables到类中。 我们开始将函数作为方法和variables作为属性来调用。

祝你好运。

添加上面的伟大的答案。 你应该将OOP看作是你的编程风格的一个自然的进展 – 当你开始编写小程序时,你可能只需要将几行PHP代码放在一起,然后将它们分组到函数中,并且你写的更多的函数可能需要更好地组织起来。 面向对象只是让你的代码更好的结构 – 更好的代码维护。