面向对象是一种编程范式,它将对象作为程序的基本单元,将程序和数据封装起来,以此来提高程序的重用性、灵活性和可扩展性。
目前很多语言都支持面向对象编程,既然对象对象是一种范式,其实这就和具体的编程语言没有直接关系,只不过很多语言将这个范式作为语言的基本元素,使用C语言也能够进行面向对象编程。
面向对象的程序设计中包含:
从我们接触PHP开始,我们最先遇到的是函数:数组操作函数,字符串操作函数,文件操作函数等等。这些函数是我们使用PHP的基础,也是PHP自出生就支持的面向过程编程。面向过程将一个个功能封装,以一种模块化的思想解决问题。
面向对象听起来很美,但是现实中的编程语言中很少有纯粹的面向对象的语言,处于性能或者程序员的开发习惯,通常的编程语言都同时支持两种变编程方式。
PHP就是如此,从PHP4起开始支持面向对象编程。但PHP4的面向对象支持不太完善。从PHP5起,PHP引入了新的对象模型(Object Model),增加了许多新特性,包括访问控制、抽象类和final类、类方法、魔术方法、接口、对象克隆和类型提示等。并且在近期发布的PHP5.3版本中,针对面向对象编程增加了命名空间、延迟静态绑定(Late Static Binding)以及增加了两个魔术方法__callStatic()和__invoke()。
PHP中对象是按引用传递的,即对象进行赋值和操作的时候是按引用(reference)传递的,而不是整个对象的拷贝。
这一章我们从面向对象讲起,会说到PHP中的类,包括类的定义和实现、接口、抽象类以及与类相关的访问控制、对象和命名空间等。除此之外也会从其存储的内部结构,类的单继承的实现,接口的多继承,以及魔法方法的实现等细微处着手分析类相关的方方面面。
首先我们来看第一小节--类的结构和实现。