📜  PHP中的final关键字(1)

📅  最后修改于: 2023-12-03 15:03:45.149000             🧑  作者: Mango

PHP中的final关键字

在PHP中,final关键字可以用于类、方法和属性的声明。它的作用是告诉编译器,这个类、方法或属性无法被继承或重写。下面我们将分别讲解final关键字在类、方法和属性中的应用。

Final类

在PHP中,使用final关键字来修饰一个类,意味着这个类不能被继承。

final class A {}
class B extends A {} // 这里会报错
Final方法

如果一个父类中的方法使用了final关键字来修饰,那么其子类中不允许出现同名的方法,并且如果子类尝试去继承父类中的final方法,会得到一个编译错误。

class A{
    final public function foo(){}
}

class B extends A{
    public function foo(){} // 这里会报错
}
Final属性

对于属性的修饰,final关键字可以用于定义常量属性。一旦一个常量属性被定义了,就不能再改变其值。另外,我们在定义常量属性时可以同时使用constpublic这两个关键字。这样定义的常量属性可以被直接访问,无需使用$this->来获取。

class A {
    public final const NAME = "test";
}

echo A::NAME; // 输出 test

总结:

  • final关键字可以限制类、方法、属性的继承或重写
  • final关键字只能用于类、方法、属性的声明中,不能用于函数、变量等其他地方
  • 常量属性可以使用constpublic关键字同时定义,也可以使用define()函数定义。但只有使用constpublic关键字定义的常量属性才可以使用final关键字。
  • 常量属性一旦定义了,其值无法被修改。