php面向对象
-
类:抽象模板 | 对象:具体事物
-
类只是具备某项功能的抽象模板,实际应用中还需要对类进行实例化,即对象
-
类的特点:继承,封装,多态
-
继承:通过继承可以创建子类和父类之间的层次关系,达到复用代码
-
封装:类是属性和方法的集合
-
多态性:不同的类进行同一操作可以有不同的行为
-
-
class 类名{成员属性=变量 成员方法=函数}
-
-
构造函数:__construct()给类里面的属性值初始化,对象创建完后,会自动调用
-
析构函数:__destrust()对类的属性已经内部资源进行销毁,对象调用后最后执行,会自动调用
-
-
继承:extends 例子:clsaa 类名 extends 父类名{}
-
-
public 公有的,修饰的属性与方法,可在本类及子类的内部访问及外部访问
-
private 私有的,修饰的属性与方法,只能在本类的内部访问
-
protected 保护的,修饰的属性与方法,只能在本类及子类的内部访问
-
final 如果放在方法前,可以限制方法的重载/覆盖 | 如果放在类之前,可以限制类的继承
-
instanceof 用来检测对象是否由某类及某类的子类所实例化
-
-
重载|覆盖:在子类中可以写跟父类同样的方法
-
对象调用成员用 -> | 类调用成员用 :: 范围解析操作符
-
parent 表示父类————使用parent::访问父类中被覆盖的方法
-
-
————————————————————————————————————————————————————
php接口:interface —— PHP只支持单继承,如果想实现多重继承,就要使用接口
-
声明一个接口:interface 接口名{ }
-
接口不能实例化成一个对象
-
所有的权限必须是公有的public,默认是公有的
-
接口里面的方法必须都是抽象方法,可以在方法前面加abstract ,也可以直接大括号后面分号结束
-
-
接口的一些细节
-
1、接口的继承使用extends,让一个接口继承另一个接口
-
2、接口继承接口,只有扩展新抽象方法,没有覆盖关系
-
3、可以使用一个类实现接口的全部方法,也可以使用一个抽象类,来实现接口中的部分方法
-
4、类与接口,抽象类与接口,覆盖,重写,实现接口中的抽象方法
-
5、类与接口,抽象类与接口就不要使用extends这个关键字,使用implements实现,implements相当于extends
-
extends 继承(扩展),这个在PHP中,一个类只能有一个父类
-
6、一个类可以在继承一个类的同事,使用implements实现一个接口(一定要先继承,再实现接口)
————————————————————————————————————————————————————
php命名空间:
-
1、声明一个命名空间:namespace 自定义名称;
-
2、在namespace声明命名空间的代码上面,不能有任何PHP代码和HTML内容输出(除了declare),声明命名空间只能是第一条
-
-
1、是一种封装事物的方法
-
2、主要用来解决类、函数、常量的命名冲突
-
-
————————————————————————————————————————————————————
php类的常量
-
const 常量名 = 值;————接口里面定义的属性必须是常量,不能是变量
————————————————————————————————————————————————————
抽象类
-
abstract 明确表示抽象类——抽象类:就是类的模板 是抽象的抽象
-
定义抽象类: abstrcat class 类名{ }
-
定义抽象方法: abstrcat function 函数名();————注意 抽象方法直接;结束,不用大括号
-
-
如果一个类中,有一个方法是抽象方法,那么这个类就是抽象类
-
抽象类中除了有抽象方法,其他跟正常定义的类完全一样
-
-
抽象类不能直接实例化一个对象
-
抽象类必须有子类去继承,将抽象类的抽象方法加上方法体,才能实例化一个对象
-
子类继承抽象类,必须覆盖重写所有的抽象方法
————————————————————————————————————————————————————
php辅助函数