>  기사  >  백엔드 개발  >  PHP 함수에 대한 액세스 제어 수준은 무엇입니까?

PHP 함수에 대한 액세스 제어 수준은 무엇입니까?

PHPz
PHPz원래의
2024-04-11 10:06:01978검색

PHP 함수에는 공개, 보호, 비공개의 3가지 액세스 제어 수준이 있습니다. 공용 함수는 어디에서나 액세스할 수 있고, 보호 함수는 자체 클래스와 하위 클래스에서만 액세스할 수 있으며, 프라이빗 함수는 자체 클래스에서만 액세스할 수 있습니다. 액세스 제어 수준을 수정할 때 함수 선언 앞에 공용 함수, 보호 함수, 개인 함수 등 해당 키워드를 추가하면 됩니다.

PHP 函数的访问控制级别有哪些?

PHP 함수의 액세스 제어 수준

PHP 함수의 액세스 제어 수준에 따라 함수의 어느 부분에 액세스할 수 있는지가 결정됩니다. 이를 통해 기능에 대한 액세스를 제한할 수 있으므로 코드의 유지 관리성과 보안이 향상됩니다.

액세스 제어 수준

PHP에는 세 가지 액세스 제어 수준이 있습니다.

  • public: 함수는 어디서나 액세스할 수 있습니다.
  • protected: 함수는 해당 함수가 위치한 클래스와 해당 하위 클래스에서만 액세스할 수 있습니다.
  • private: 함수는 해당 함수가 위치한 클래스에서만 접근할 수 있습니다.

Syntax

액세스 제어 수준을 수정할 때 함수 선언 앞에 해당 키워드를 추가하면 됩니다.

// public 函数
public function myPublicFunction() {
    // ...
}

// protected 函数
protected function myProtectedFunction() {
    // ...
}

// private 函数
private function myPrivateFunction() {
    // ...
}

실용 사례

사용자 데이터를 저장하는 User 클래스가 있다고 가정해 보겠습니다. 우리는 이 클래스의 공개 메소드를 통해서만 사용자 데이터에 대한 액세스를 허용하려고 합니다. 이를 달성하기 위해 사용자 데이터를 보호된 것으로 가져오는 함수를 설정합니다. User。我们希望只允许通过该类的公共方法访问用户数据。为了实现这一点,我们将对获取用户数据的函数设置为 protected:

class User {
    protected $name;
    protected $email;

    public function getName() {
        return $this->name;
    }

    public function getEmail() {
        return $this->email;
    }
}

现在,其他类可以通过 User 对象访问 getName()getEmail() 方法,但无法直接访问 $name$email 属性。

注意事项

  • 默认情况下,PHP 函数的访问控制级别是 public。
  • 如果尝试访问私有或受保护的函数,则会引发 Fatal Error
  • 受保护的函数可以在派生类中通过 parent::rrreee
  • 이제 다른 클래스는 User 개체 getEmail을 통해 getName()에 액세스할 수 있습니다. () 메소드를 사용하지만 $name$email 속성에 직접 액세스할 수는 없습니다.
Notes🎜🎜🎜🎜기본적으로 PHP 함수의 액세스 제어 수준은 공개입니다. 🎜🎜비공개 또는 보호된 기능에 액세스하려고 하면 🎜치명적인 오류🎜가 발생합니다. 🎜🎜보호된 함수는 parent::를 통해 파생 클래스에서 액세스할 수 있습니다. 🎜🎜민감한 데이터 및 기능에 대한 액세스를 보호하려면 액세스 제어 수준을 사용하는 것이 좋습니다. 액세스 제어를 올바르게 사용하면 코드 보안이 향상될 수 있습니다. 🎜🎜

위 내용은 PHP 함수에 대한 액세스 제어 수준은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.