1.面向对象的概念
面向对象设计(Object-Oriented Programming,OOP)是一种程序设计范型,同时也是一种程序开发方法。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重要性,灵活性和可扩展性。
面向对象的核心思想是对象、封装、可重用性和可扩展性
class--------------创建对象的方法或蓝图
object------------实例
instantiate-------从类创建对象的动作
method----------属于对象的函数
property----------属于对象的变量
1.1 面向对象的“形”与“本”
类是对象的抽象组织,对象是类的具体存在。
类是我们对一组对象的描述。
在PHP里,每个类的定义都以关键字class开头
类是属性和方法的集合,对象由属性和方法组成
- 类定义了一系列的属性和方法,并提供了实际的操作细节,这些方法可以用来对属性进行加工
- 对象含有类属性的具体值,这就是类的实例化。正是由于属性的不同,才能区分不同的对象。
- 类与对象类似一种服务与被服务、加工与被加工的关系,具体而言,就如同原材料与流水线的关系。只需要在对象上调用类中所存在的方法吗,就可以对类的属性进行加工,并且展示其功能。
反射
面向对象的编程中对象被赋予了自省能力,而这个自省的过程就是反射。
反射,直观理解就是根据到达地找到出发地和来源。
反射指在PHP运行状态中,扩展分析PHP程序,导出或提取出关于类、方法、属性、参数等的详细信息,包括注释。这种动态获取信息以及动态调用对象方法的功能称为反射API。
1.2 抽象类
抽象类(abstract class)机制中总是要定义一个公共的基类(base class),而将特定的细节留给继承者来实现。具体地说,当需要创建一个基础的对象,而创建所需的某些方法并没有完整地定义出来时,就需要用到抽象类。通过使用抽象概念,可以在开发项目中创建扩展性很好的架构。
3.2 设置类中的属性
类可以定义被称为属性的特定变量。属性也被称为成员变量,用来存放对象之间互不相同的数据。
类的属性和标准的变量很相似,关键字public、protected或private,它决定了属性的作用域。
PHP的类型检查函数
类型检查函数 | 类型 | 描述 |
is_bool() | 布尔型 | 值为true或false |
is_integer() | 整型 | 整数 |
is_double() | 双精度型 | 浮点数(有小数点的数字) |
is_string() | 字符串 | 字符数据 |
is_object() | 对象 | 对象 |
is_array() | 数组 | 数组 |
is_resource() | 资源 | 用于识别和处理外部资源的句柄 |
is_null() | NULL | 未分配的值 |
public、privata、protected:管理类的访问
类中的元素可以被声明为public、private或protected
在任何地方都可以访问public属性和方法。
只能在当前类中才能访问private方法或属性,即使在子类中也不能访问。
可以在当前类或子类中访问protected方法或属性,其他外部代码无权访问