PHP中类的方法访问权限有哪些
1. 访问权限简介
在PHP中,类方法有四种不同的访问权限,分别是:
public
protected
private
final
1.1 public访问权限
public是最基本的访问权限,一个方法被public修饰后,任何地方都可以直接访问该方法。
class MyClass {
public function publicFunction() {
echo "This is a public function.";
}
}
$obj = new MyClass();
$obj->publicFunction(); //输出:This is a public function.
1.2 protected访问权限
如果一个方法被protected修饰,那么该方法只能在当前类及其子类中直接访问。
class MyBaseClass {
protected function protectedFunction() {
echo "This is a protected function.";
}
}
class MyClass extends MyBaseClass {
public function run() {
$this->protectedFunction(); //子类中可以直接调用父类中的protected方法
}
}
$obj = new MyClass();
$obj->run(); //输出:This is a protected function.
1.3 private访问权限
如果一个方法被private修饰,那么该方法只能在当前类中直接访问。即使该类的子类也无法访问该方法。
class MyPrivateClass {
private function privateFunction() {
echo "This is a private function.";
}
}
class MyClass extends MyPrivateClass {
public function run() {
$obj = new MyPrivateClass();
$obj->privateFunction(); //会提示:Call to private method MyPrivateClass::privateFunction()
}
}
$obj = new MyClass();
$obj->run(); //会提示:Call to private method MyPrivateClass::privateFunction()
1.4 final访问权限
如果一个方法被final修饰,那么该方法不能被其子类覆盖。
class MyBaseClass {
final protected function finalFunction() {
echo "This is a final function.";
}
}
class MyClass extends MyBaseClass {
//会提示:Cannot override final method MyBaseClass::finalFunction()
protected function finalFunction() {
echo "This is a final function in my subclass.";
}
}
2. 访问权限总结
访问权限是PHP类中一个非常重要的特性,它可以控制类方法被访问的范围和级别。在设计类的时候,需要考虑到方法的访问权限,以确保类的安全运行和封装性的实现。