快速理解面向对象的PHP编程--基础篇
作为一个php开发者,我们都基本都习惯php类似C语言的面向过程的编程模式。以至于好多人都以为php只能面向过程编程,今天我就来谈谈我近期学习php的吗,面向对象编程的一些总结和重要知识。
面向对象的特性:封装,继承,多态。
封装:将属性(数据)和方法(函数)打包成一个整体这个整体就叫类。
继承:将相同的类定义为一个通用类,然后其他想拥有该属性和方法的类去继承通用类的这些属性和方法,通用类叫父类继承的类叫子类。
多态:同一个方法在不同的类中实现不同的功能,这叫多态。
通俗的解释下上面三个概念:
封装:我们假设要煮碗泡面,去买了桶泡面你会发现买来的那桶泡面中有调料有面有桶有叉子,我们只要将热水倒进去然后撒上各种调料盖上盖子捂上几分钟就可以食用 了。其中泡面中的调料,面,调料,叉子都是他自带的东西也就是属性,我们加上热水然后捂上几分钟这是我们自己选择的泡面方法,有的人还会在泡面时加上香肠 鸡蛋什么的,这个就想方法中的参数一样由你自己去加。最后通过这些一系列操作我们完成了泡面这个事。
继承:这个顾名思义就是相当于父亲去世他的遗产被儿女继承,女儿就拥有父亲生前的财产和物品。
多态:我们在上学的时候每个班都有学号和班内序号,我们可以通过学号找到同学。但是要通过班内序号找到同学的话就必须要有对应的专业班级。
接下来我们看看怎么定义一个类:
class ClassName{} 其中class为关键字,类的定义在class后面跟上类名加上{};
class ClassName{ public function __construct($name){ echo "我是构造方法".$name; } public function show($show){ echo "我是一个方法".$show; } public function __destruct(){ echo "我是析构方法"; } }
__construct()在PHP中这个叫做构造方法。它是在类被实例化后自动执行的一个方法(一般可以做数据库的连接等操作),可以有参数不能有返回值。
__destruct() 在PHP中这个叫做析构方法。它是在对象被销毁或者程序执行完后自动执行的一个方法,可以不能有参数。
继承一个类: class Name extends ClassName{} 继承的关键字为extends,Name是子类,ClassName是父类。
class Name extends ClassName{ //继承一个类 }
类被定义好之后我们就可以使用它来完成我们的程序功能了,也就是类的实例化:关键字是new 类名 如果类中的构造函数有参数的话就可以加。
$obj = new ClassName('llh'); //实例化一个类
调用类中的方法:其实在实例化的时候已经自动调用了构造方法。
$obj = new ClassName('llh'); $obj->show('ym'); //调用show方法
使用类中的属性:使用$this->属性名(前提是属性的权限够)。属性名前不加$。
class ClassName{ public $a; public function __construct($name){ $this->a=$name; echo $this->a; } }
这就是我这段时间总结的PHP面向对象编程的基础知识,关于访问权限,重写,静态属性和方法的访问以及接口的问题我们在进阶篇再讲。由于笔者能力有限,在文中难免出现错误,希望广大读者多多交流斧正。