PHP 面向对象中常见关键字使用(final、static、const和instanceof)
PHP 面向对象中常见关键字的使用:
1、final :final关键字可以加在类或者类中方法之前,但是不能使用final标识成员属性。
作用: 使用final标识的类,不能被继承。
在类中使用final标识的成员方法,在子类中不能覆盖。
总结:final表示为最终的意思,所以使用final关键字的类或者类中的成员方法是不能被更改的。
2、static :static关键字将类中的成员属性或者成员方法标识为静态的,static标识的成员属性属于整个类,static成员总是唯一存在的,被类的全部对象实例共享。
调用方式:
类外: 类名::静态成员属性名;类名::静态成员方法名(); 对象引用::静态成员属性名;对象引用::静态成员方法名();
建议在类外使用类名访问静态的属性或方法。
类内: self::静态成员属性名;self::静态成员方法名()。
提示:
在使用静态方法时需要注意,在静态方法中只能访问静态成员。因为非静态的成员必须通过对象的引用进行访问,通常是使用$this完成。而静态的方法在对象不
存在的情况下也可以直接使用类名来访问,没有对象也就没有$this引用,没有了$this引用就不能访问类中的非晶态成员,但是可以使用尅名或者self在非静态方法中
访问静态成员。
3、const:const关键字是在类中定义常量,而define()函数也是定义常量,但它是在类外定义常量。
调用方式和静态成员是一样的,都是通过类名或者在成员方法中使用self关键字进行访问,但是不建议使用对象引用进行访问。
注意事项:
const标识的常量的属性是只读的,不能重新赋值,所以一定要在定义的时候初始化。使用const声明的常量名称前不要使用“$”符号,并且常量名通常都是大写
的。
4、instanceof: instanceof 关键字确定一个对象是否是类的实例、类的子类、还是实现了某个特定的接口,如果是则返回 true 否则返回 false。
用法:对象引用 instanceof 类名 例如:$man instanceof People;
注意: 类名不使用定界符(不使用引号)。