PHP面向对象
一、面向过程与面向对象
面向过程指直接输入代码,逻辑过程不直接显示在代码中,遇到相同逻辑问题时,代码还有重新编写,代码重用性差,
面向对象指把逻辑模块化,遇到相同问题时可以直接运用模块来解决,不要再次编写逻辑过程,代码重用性高,逻辑层次鲜明,
二、面向对象基本概念
1.类,由众多对象抽象出来的东西,
2.对象,一切皆对象,由类实例化出来的,
3.类的定义,定义一个类,对象是人,
class Ren{ //类名 public $code; //成员变量,编号 public $name; //成员变量,姓名 public $sex; //成员变量,性别 public $birthday; //成员变量,生日 public function say(){ //成员函数 ehco "嗨"; } }
类里面的所有的变量和出现的函数都叫做类的成员,
$this写在类里面代表该对象,谁来调用谁就是this,
访问修饰符,定义类成员用
①public 共有的,任何地方都可以访问,类里类外都可以
②protected 受保护的,在类里和子类里可以访问,类外不可以
③private 私有的,只在该类里能访问
4.实例化对象,定义了类以后可以实例化对象,该对象拥有类内的所有成员,即对象可以调用类内成员,类里面的成员是属于对象的,类里面的成员是对象抽象出来的,
$r = new Ren(); $r->code = "p001"; $r->name = "张三"; $r->sex = 1; $r->birthday = "1990-04-21"; $r->say();
执行 var_dump($r); 得到
“张三:嗨~”是调用成员函数的结果,下面的信息是 $r 这个对象的信息
三、函数
1.构造函数,用来初始化参数,有两个特殊点
①写法特殊,函数名与类名一样,
public function Ren(){}
或者
public function __construct(){}
双下划线打头的函数名一般只出现在面向对象中,称作魔术函数,指可以自动运行的函数,
②执行时间特殊
在造对象的时候执行 new Ren() 的时候,也就是说它是对象首先执行的函数,所以用来初始化参数
2.析构函数:对象销毁前调用的函数,
public function __destruct(){}
对象销毁指对象在代码中最后一次出现后,内存会自动销毁对象以保障运行速度