当前位置: 首页> 最新文章列表> PHP函数访问权限详解:如何正确设置Public、Protected和Private

PHP函数访问权限详解:如何正确设置Public、Protected和Private

M66 2025-07-28

PHP函数访问权限级别简介

在PHP面向对象编程中,函数的访问权限决定了哪些代码可以调用该函数。通过设置访问权限修饰符,开发者可以灵活控制函数的可见性和访问范围,从而增强代码的安全性和封装性。

访问权限修饰符及其作用

Public(公共)

使用public修饰的函数对所有代码都是可见的,可以被任意位置调用,包括类外部。

示例:

public function publicFunction() {
  // 函数代码
}

Protected(受保护)

protected修饰的函数仅能被定义该函数的类及其子类访问,类外部无法直接调用。

示例:

protected function protectedFunction() {
  // 函数代码
}

Private(私有)

private修饰的函数只能被定义该函数的类自身访问,子类和类外部均不可访问。

示例:

private function privateFunction() {
  // 函数代码
}

实战案例解析

下面示例展示了不同访问权限的函数在父类和子类中的访问情况:

class ParentClass {
  public function publicFunction() {
    echo "Public function in parent class";
  }

  protected function protectedFunction() {
    echo "Protected function in parent class";
  }

  private function privateFunction() {
    echo "Private function in parent class";
  }
}

class ChildClass extends ParentClass {
  public function accessFunctions() {
    $this->publicFunction();
    $this->protectedFunction();
    // 以下调用会导致错误,因为privateFunction是私有的
    // $this->privateFunction();
  }
}

$child = new ChildClass();
$child->publicFunction();
$child->protectedFunction(); // 此处调用会报错,protected函数不能被类外直接访问

在该示例中,ParentClass定义了不同访问权限的函数。子类ChildClass能够访问父类中的公共和受保护函数,但无法访问私有函数。需要注意的是,受保护函数不能被类外部直接调用。

总结

合理使用访问权限修饰符是PHP面向对象设计的重要组成部分。通过正确指定函数的访问级别,可以有效保护类的内部实现细节,同时对外提供必要的接口,从而实现代码的封装与复用。