PHP에서 공개, 비공개 및 보호의 차이점은 무엇입니까

Phpeseo Gong Gae Bigong Gae Mich Bohoui Chaijeom Eun Mueos Ibnikka



PHP는 동적 웹사이트 및 웹 애플리케이션 개발에 널리 사용됩니다. PHP는 다음과 같은 키워드를 제공합니다. 액세스 한정자 . 액세스 수정자 속성은 다음과 같은 세 가지 방법으로 변수, 클래스 또는 클래스 속성에 액세스하는 데 사용됩니다. 공공의 , 사적인, 그리고 보호 . 이 기사에서는 이러한 액세스 수정자에 대해 논의하고 PHP 프로그래밍 언어에서 이러한 세 가지 액세스 수정자의 차이점을 확인할 것입니다.

PHP의 액세스 수정자는 무엇입니까?

PHP에서 액세스 수정자는 사용자에게 클래스 속성 및 메서드의 액세스 가능성뿐만 아니라 가시성을 조절할 수 있는 기능을 제공하기 때문에 필수적입니다. 결과적으로 캡슐화 및 데이터 보안을 제공하므로 클래스 구성원이 무단 액세스 또는 변경으로부터 보호됩니다. 또한 코드 유지 관리 및 디버깅이 더 쉬워집니다.







액세스 수정자의 유형

PHP에 존재하는 세 가지 액세스 수정자는 아래에서 설명합니다.



  • 공공의: 클래스 외부에서 공용 메서드에 액세스할 수 있습니다. 이는 모든 코드가 공용 메서드에 액세스, 변경 및 호출할 수 있음을 의미합니다.
  • 사적인: 개인 메소드에 액세스하는 것은 클래스 자체로 제한됩니다. 이는 자식 클래스인 경우에도 다른 코드 중 어느 것도 개인 메서드에 액세스하거나 개인 값을 읽을 수 없음을 의미합니다.
  • 보호됨: 보호된 메서드는 클래스 및 이와 관련된 클래스 내에서만 액세스할 수 있습니다. 해당 클래스 외부에서는 사용할 수 없습니다. 클래스 인스턴스에 액세스해야 하는 모든 소스 코드는 보호된 속성의 데이터를 읽거나 변경하거나 보호된 함수를 호출할 수 있습니다.

PHP의 공개, 비공개 및 보호 액세스 수정자의 차이점

재산 공공의 사적인 보호
접근성 이러한 액세스 한정자는 코드 내부 및 외부와 같이 어디에서나 액세스할 수 있습니다. 개인 액세스 지정자는 클래스 내에서만 액세스할 수 있습니다. 클래스 및 관련(자식) 클래스 및 메서드 내에서 액세스할 수 있습니다.
유연성 어디에서나 액세스할 수 있는 공용 리소스가 가장 큰 유연성을 제공합니다. 이러한 메서드는 클래스 내에서 독점적으로 액세스할 수 있으므로 유연성이 가장 낮습니다. protected 메서드는 자식 클래스가 이러한 메서드에 액세스할 수 있으므로 적절한 유연성을 제공합니다.
캡슐화 다른 코드는 공용 메서드에 액세스하거나 캡슐화할 수 있지만 프로그래머가 이를 제어할 수 있습니다. 비공개 메서드는 클래스 내부에 캡슐화되어 외부 코드에서 액세스하거나 업데이트할 수 없습니다. 캡슐화 프로세스는 PHP의 공개 방법과 동일합니다.
보안 공용 메서드는 어디에서나 액세스할 수 있습니다. 따라서 코드에서 낮은 수준의 보안을 제공합니다. 최대 보안 수준은 비공개 액세스 한정자가 클래스 내에 완전히 포함되기 때문에 제공됩니다. 클래스 및 하위 클래스의 멤버만 액세스할 수 있으므로 보호 액세스 수정자는 합리적인 수준의 보안을 제공합니다.

PHP의 간단한 프로그램 예제를 사용하여 이러한 액세스 지정자의 차이점을 살펴보겠습니다.



예: Private, Public 및 Protected Access Modifier가 있는 PHP 프로그램





다음 예제는 하나의 예제 코드에서 public, private 및 protected 간의 차이점을 보여줍니다.

< ?php
클래스 마이클래스 {
공공의 $public = '공용 변수. \N ' ; // 어디서나 액세스 가능
사적인 $개인 = '개인 변수. \N ' ; // 클래스 내에서만 접근 가능
보호 $보호됨 = '보호된 변수.' ; // 클래스 및 하위 클래스 내에서 액세스할 수 있습니다.

공공의 기능 getPrivate ( ) {
반품 $이 - > 사적인;
}

공공의 기능 getProtected ( ) {
반품 $이 - > 보호;
}
}
$obj = 새로운 마이클래스 ( ) ;

에코 $obj - > 공공의;
에코 $obj - > getPrivate ( ) ;
에코 $obj - > getProtected ( ) ;
? >



위의 프로그램에서 클래스를 다음과 같이 정의했습니다. 내 수업 공공재산으로 $public 코드의 어디에서나 액세스할 수 있는 개인 속성은 다음과 같습니다. $개인 , 라고 하는 보호 재산 $보호됨 , 따라서 우리는 클래스 외부에서 직접 개인 및 보호 지정자에 액세스할 수 없습니다. 라는 두 가지 공개 방법을 사용했기 때문에 getPrivate() 그리고 getProtected() 개인 및 보호 속성 변수의 값을 각각 반환하며 출력은 다음과 같습니다.

결론

PHP는 많은 기능을 제공하며 그 중 하나는 액세스 수정자라는 키워드입니다. 이러한 액세스 수정자는 PHP 프로그램의 클래스 데이터에 대해 서로 다른 액세스 패턴을 제공합니다. 위의 튜토리얼에서 우리는 PHP에서 제공되는 접근성, 캡슐화, 유연성 및 보안 측면에서 액세스 수정자 간의 차이점을 확인했습니다.