PHP 객체 지향 프로그래밍에서 함수의 액세스 권한은 기능을 호출 할 수있는 코드를 결정합니다. 액세스 권한 수정자를 설정함으로써 개발자는 기능의 가시성 및 액세스 범위를 유연하게 제어하여 코드의 보안 및 캡슐화를 향상시킬 수 있습니다.
공개로 수정 된 기능은 모든 코드에 표시되며 클래스 외부를 포함하여 어디서나 호출 할 수 있습니다.
public function publicFunction() {
// 기능 코드
}
보호 된 수정 된 함수는 클래스와 함수를 정의하는 서브 클래스에 의해서만 액세스 할 수 있으며 클래스 밖에서 직접 호출 할 수 없습니다.
protected function protectedFunction() {
// 기능 코드
}
비공개로 수정 된 함수는 기능 자체를 정의하는 클래스에서만 액세스 할 수 있으며 서브 클래스와 클래스 외부에서 액세스 할 수 없습니다.
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는 다른 액세스 권한이있는 기능을 정의합니다. Child Class Childclass는 부모 클래스에서 공개 및 보호 기능에 액세스 할 수 있지만 개인 기능은 아닙니다. 보호 된 기능은 클래스 밖에서 직접 호출 할 수 없습니다.
액세스 권한 수정 자의 합리적인 사용은 PHP 객체 지향 설계의 중요한 부분입니다. 기능의 액세스 수준을 올바르게 지정함으로써 클래스의 내부 구현 세부 사항을 효과적으로 보호 할 수 있으며 필요한 인터페이스는 외부 세계에 제공되어 코드의 캡슐화 및 재사용을 실현합니다.