>백엔드 개발 >PHP 문제 >PHP의 클래스에 대한 액세스 수정자는 무엇입니까?

PHP의 클래스에 대한 액세스 수정자는 무엇입니까?

百草
百草원래의
2023-09-15 15:42:091403검색

PHP의 클래스 액세스 수정자에는 공개 수정자, 보호 수정자 및 비공개 수정자가 포함됩니다. 자세한 소개: 1. public 한정자는 클래스의 가장 일반적인 액세스 한정자입니다. 이는 속성과 메서드가 클래스 내부, 하위 클래스 및 외부에서 표시되고 액세스 가능함을 나타냅니다. 2. protected 한정자는 속성과 메서드가 클래스의 내부 및 하위 클래스에 표시되고 액세스 가능하지만 외부에는 표시되지 않음을 나타냅니다.

PHP의 클래스에 대한 액세스 수정자는 무엇입니까?

이 튜토리얼의 운영 체제: windows10 시스템, PHP 버전 8.1.3, DELL G3 컴퓨터.

PHP에서는 클래스의 액세스 한정자를 사용하여 클래스의 속성과 메서드에 대한 가시성과 액세스 권한을 제어합니다. PHP에는 공용, 보호, 개인이라는 세 가지 일반적인 클래스 액세스 수정자가 있습니다. 아래에서는 각 수정자의 특징과 사용법을 자세히 소개합니다.

1. 공개 수정자: 공개 수정자는 클래스의 가장 일반적인 액세스 수정자이며 속성과 메서드가 내부, 하위 클래스 및 외부에서 액세스 가능함을 나타냅니다. 수업의 눈에 보이고 접근 가능해야 합니다. 즉, public 한정자로 수정된 속성과 메서드는 어디에서나 액세스하고 호출할 수 있습니다.

예:

   class MyClass {
       public $publicProperty;
   
       public function publicMethod() {
           // 公共方法的实现
       }
   }
   
   $obj = new MyClass();
   $obj->publicProperty = 'Hello';
   echo $obj->publicProperty; // 输出:Hello
   $obj->publicMethod(); // 调用公共方法

2. 보호된 수정자: 보호된 수정자는 속성과 메서드가 클래스의 내부 및 하위 클래스에 표시되고 액세스 가능하지만 외부에는 표시되지 않음을 나타냅니다. 즉, protected 한정자로 수정된 속성과 메서드는 클래스와 하위 클래스 내에서만 액세스하고 호출할 수 있습니다.

예:

   class MyClass {
       protected $protectedProperty;
   
       protected function protectedMethod() {
           // 受保护方法的实现
       }
   }
   
   class SubClass extends MyClass {
       public function accessProtected() {
           $this->protectedProperty = 'Hello';
           echo $this->protectedProperty; // 输出:Hello
           $this->protectedMethod(); // 调用受保护方法
       }
   }
   
   $obj = new SubClass();
   $obj->accessProtected();

위의 예에서 SubClass는 MyClass의 하위 클래스입니다. 이는 MyClass의 protected 수정자에 의해 수정된 속성과 메서드에 액세스하고 호출할 수 있습니다.

3. 프라이빗 한정자: 프라이빗 한정자는 속성과 메서드가 클래스 내에서만 표시되고 액세스 가능하며 하위 클래스와 외부에서는 표시되지 않음을 나타냅니다. 즉, private 한정자로 수정된 속성과 메서드는 클래스 내에서만 액세스하고 호출할 수 있습니다.

예:

   class MyClass {
       private $privateProperty;
   
       private function privateMethod() {
           // 私有方法的实现
       }
   
       public function accessPrivate() {
           $this->privateProperty = 'Hello';
           echo $this->privateProperty; // 输出:Hello
           $this->privateMethod(); // 调用私有方法
       }
   }
   
   $obj = new MyClass();
   $obj->accessPrivate();

위의 예에서 accessPrivate 메서드는 MyClass 클래스의 공용 메서드로, private 한정자로 수정된 속성과 메서드에 액세스하고 호출할 수 있습니다.

클래스의 액세스 한정자는 전체 클래스 자체가 아닌 클래스의 속성과 메서드에만 적용될 수 있다는 점에 유의해야 합니다. 또한 클래스의 속성과 메서드는 액세스 한정자로 수정되지 않은 경우 기본적으로 공개됩니다.

클래스의 액세스 한정자를 합리적으로 사용하면 클래스의 속성과 메서드에 대한 가시성과 액세스 권한을 제어할 수 있어 코드의 캡슐화와 보안이 향상됩니다. 특정 비즈니스 요구 사항 및 디자인 원칙에 따라 코드 유지 관리 및 확장을 용이하게 하기 위해 클래스 멤버를 정의하는 적절한 액세스 한정자를 선택합니다.

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

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