静态属性
使用static关键字定义的属性和方法 直接属于类,不会进入到对象上去
类如何防卫静态属性 类名::静态属性 1.::范围解析操作符2.静态属性前加$
静态方法的使用和静态属性一样
静态方法中不能使用$this关键字 $this是实例对象,而对象不能访问静态成员
self指向类本身
类里面想操作静态成员 使用self关键字
常量
类中使用关键字const定义常量成员 类中访问常量使用self
对象不能操作常量
总结
类中的成员
Pubic Protected Private static const
对象克隆
- 对象和变量之间的赋值 不是克隆 而是将对象的内存地址赋给对象,二者还是同一个对象。
- Js通过Object.create
Php中克隆 通过关键字 done克隆一个对象
通过关键字done对象的时候,其实是调用类中的隐藏函数function _done
如果不让类生成的实例对象被克隆 在隐藏函数 function _done前面修改访问修饰符为protected就可以了
8.13
Interface
使用关键字interface定义接口,接口也是一个类
- 接口中的方法必须是公有的
- 接口中的方法必须是空的,不能定义,由去实现接口的类去定义
- 使用implements关键字 实现接口 并且要实现接口中的所有方法,
抽象类
通过关键字abstract定义的类都是抽象类。
只要类中的方法被定义为抽象方法,那么这个类一定是抽象类,抽象方法必须是空,不能定义他具体的功能实现。
注意:
- 抽象类不能被实例化
- 子类去继承这个抽象类的时候,一定要去实现抽象类的抽象方法,且和抽象方法的 访问权限必须一致
子类使用关键字extents去继承抽象类
抽象方法中的参数参数
- 可选参数 带有默认值的参数为可选参数
- 子类继承抽象类,如果抽象类中有参数,子类方法必须也有这个参数可以不同名
- 子类方法中可以有父类抽象方法中没有的可选参数
Final
Final关键字
放在父类中的方法成员前面 子类无法覆盖父类的
面向对象的三大特征
- 封装
将数据和操作数据的方法捆绑在一起,对外隐藏,只提供可以操作的接口
- 继承
- 多态
Php是弱类型语言,没有多态这个概念,有重载。重载:子类和父类的方法名相同,子类会覆盖掉父类的方法,这就叫重载
多态是强类型语言才有的
在java中int a=12; string a=”hello”;
Functon fn(int a){return a+5}
Function fn(string a){return a+5} 函数名语义,参数名不一样 但是参数的数据类型不一样,这两个函数表现不同的功能这就叫多态
Js/php a=12,a=”hello” a被重新赋值
表单
前端页面提交数据可以通过表单提交
主要有八种提交方式
Post 通过http中的请求体
Get 通过http中的网络地址
Options
Put
Delete
Head
Trace
Connect
对于get提交php使用$_GET[]接收 对于post提交php使用$_POST[]接收