转自原文:
https://www.cnblogs.com/xrq730/p/4820992.html
static关键字的作用:
使用static关键字声明类属性或方法为静态,就可以不实例化类而直接访问。静态属性不能通过一个类已实例化的对象来访问,但是静态方法可以。
静态属性:被static修饰的变量称为静态属性,可以通过类名::变量名直接引用。不需要实例化类。
静态方法:被static修饰的方法称为静态方法,可以通过类名::方法名直接引用。不需要实例化类。
静态变量和静态方法都属于类的静态资源,静态资源是类初始化的时候加载的,文件载入就算初始化,在类实例之间共享,换言之,一处变、处处变。非静态资源是类实例化new的时候加载的,要晚于静态资源。
因为类的初始化早于类的new,静态资源都是在类初始化的时候加载的,所以静态方法里面可以引用静态资源,静态方法不能引用非静态资源,非静态方法可以引用静态资源。
静态资源的加载顺序是严格按照静态资源的定义顺序来加载的。
后期静态绑定:
final关键字的作用:
在php中,属性不能被定义为 final, 只有类和方法才能被定义为 final。
1、被final修饰的类不可以被继承。
2、被final修饰的方法不可以被重写,即不允许子类覆盖重写。