PHP 面向对象中常见关键字使用(final、static、const和instanceof)

时间:2023-01-19 11:17:08

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;

    注意: 类名不使用定界符(不使用引号)。