📅  最后修改于: 2023-12-03 15:03:45.149000             🧑  作者: Mango
在PHP中,final
关键字可以用于类、方法和属性的声明。它的作用是告诉编译器,这个类、方法或属性无法被继承或重写。下面我们将分别讲解final
关键字在类、方法和属性中的应用。
在PHP中,使用final
关键字来修饰一个类,意味着这个类不能被继承。
final class A {}
class B extends A {} // 这里会报错
如果一个父类中的方法使用了final
关键字来修饰,那么其子类中不允许出现同名的方法,并且如果子类尝试去继承父类中的final
方法,会得到一个编译错误。
class A{
final public function foo(){}
}
class B extends A{
public function foo(){} // 这里会报错
}
对于属性的修饰,final
关键字可以用于定义常量属性。一旦一个常量属性被定义了,就不能再改变其值。另外,我们在定义常量属性时可以同时使用const
和public
这两个关键字。这样定义的常量属性可以被直接访问,无需使用$this->来获取。
class A {
public final const NAME = "test";
}
echo A::NAME; // 输出 test
总结:
final
关键字可以限制类、方法、属性的继承或重写final
关键字只能用于类、方法、属性的声明中,不能用于函数、变量等其他地方const
和public
关键字同时定义,也可以使用define()
函数定义。但只有使用const
和public
关键字定义的常量属性才可以使用final
关键字。