接口
接口就是一个简单的容器,该容器专门用来规范类的结构的东西。
语法:interface 接口名字{接口体}
接口体
1.不能有属性
2.方法必须没有方法体
3.所有的访问限定修饰符必须是Public
接口定义及接口内容
接口的实现:接口的实现必须通过类才能实现
语法:class 类名 implements 接口名
类要实现接口,必须实现接口里的所有方法,实现就是给方法增加方法体。
接口的使用
一般较小的项目,追求效率的情况下,不会使用 抽象类 和接口来进行规范
一般较大的项目,项目团队比较多,就会使用接口或者抽象类来规范一些操作。
接口可以继承接口
面试题:
1.PHP是否支持多继承?如何模拟?
不支持,链式继承
2.接口是不是类?
不是类,接口就是接口
3.接口是不是抽象类?
不是,抽象类是类的一种
4.PHP是否支持 多态 ?
不支持,PHP不允许重名函数或者方法的存在
PHP 重载
在对象去访问一个类中不存在或者权限不够的属性或者方法的时候,会自动触发的一些列魔术方法。
PHP重载分为两种:属性重载, 方法重载
属性重载:访问不存在的或者权限不够的属性
__get():访问一个不存在或者权限不够的属性的时候,会自动调用的方法
作用:
1.提供了一种机制,能够让对象在外部访问原本不能在类外部访问的属性的机制
2.能够控制外部对内部属性的访问
__set():在设置一个不存在或者权限不够的属性的时候,会自动调用的方法
作用:
1.使得内部一些不能在外部访问的属性在外部被设置值
2.能够控制部分属性可以被设置,而部分不能被设置
3.能够限定对象,不能无限扩展其户型
课堂作业
1.抽象类,接口,重载
__isset()(isset和empty时调用):当在外部使用isset函数来判断对象的属性的时候会自动调用的方法
__unset()(unset调用):在外部对对象的属性进行unset的时候会自动调用的方法
方法重载:访问不存在的或者权限不够的方法
__call():普通方法访问该方法
__callStatic():当调用 静态方法 时会自动访问
不存在的处理方式
子类可以去显示的调用父类的 构造方法
语法:parent::__construct();