현재 위치: > 최신 기사 목록> PHP 객체 지향 프로그래밍 시작 : 액세스 수정자를 사용하여 객체의 특성 및 방법을 보호하는 방법

PHP 객체 지향 프로그래밍 시작 : 액세스 수정자를 사용하여 객체의 특성 및 방법을 보호하는 방법

M66 2025-06-05

PHP 객체 지향 프로그래밍의 기본 사항 : 액세스 수정 자의 자세한 설명

PHP 개발에서 객체 지향 프로그래밍 (OOP)은 주류 프로그래밍 패러다임입니다. "클래스"및 "객체"의 구조를 통해 코드를 구성하여 프로그램 구조를 더 명확하고 확장 및 유지 관리하기 쉽게 만듭니다. 실제 개발에서는 클래스에서 속성 및 방법의 액세스 권한을 합리적으로 제어하는 ​​것이 중요하며, 이는 액세스 수정자를 사용해야합니다.

이 기사는 PHP의 세 가지 액세스 수정 자 : 공개 (공개), 개인 (개인) 및 보호 (보호)를 자세히 설명하고 예제를 통해 사용량을 마스터하도록 도와줍니다.

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

액세스 수정자는 클래스에서 속성 및 메소드의 액세스 수준을 제어하는 ​​데 사용되므로 외부 코드에서 내부 구현 및 프로그램의 캡슐화에 대한 간섭을 피할 수 있습니다. PHP는 다음 세 가지 수정자를 지원합니다.

  • 공개 : 공개 액세스, 어디서나 접근 가능.

  • 비공개 : 개인 액세스, 수업의 내부 사용에만 해당됩니다.

  • 보호 : 보호 된 액세스, 클래스의 내부 및 서브 클래스에만 해당됩니다.

1. 공개 액세스 수정 자

대중은 가장 일반적인 액세스 수정 자입니다. 즉, 클래스의 속성 또는 방법이 외부에 개방되어 있으며 어디서나 액세스하거나 전화 할 수 있습니다.

 class Person {
  public $name;

  public function sayHello() {
    echo "Hello, my name is " . $this->name;
  }
}

$person = new Person();
$person->name = "John";
$person->sayHello();  // 산출:Hello, my name is John

이 예에서는 $ namesayhello ()가 모두 공개됩니다. 외부 할당과 통화는 값에 직접 할당되어 호출 될 수 있으며, 이는 매우 직관적이지만, 속성이 마음대로 변경되어 프로그램의 안정성에 영향을 줄 수 있습니다.

2. 개인 액세스 수정 자

비공개 로 수정 된 속성 및 방법은 클래스 내부에서만 액세스 할 수 있으며 외부에서 직접 액세스 할 수 없습니다. 이 방법은 캡슐화를 향상시키고 클래스의 내부 구현을 보호하는 일반적인 수단입니다.

 class Person {
  private $name;

  public function setName($name) {
    $this->name = $name;
  }

  public function sayHello() {
    echo "Hello, my name is " . $this->name;
  }
}

$person = new Person();
$person->setName("John");
$person->sayHello();  // 산출:Hello, my name is John

공개 setName () 메소드를 제공함으로써 외부는 여전히 $ 이름을 간접적으로 설정할 수 있지만 속성에 직접 액세스 할 수 없어 데이터의 무결성을 효과적으로 보호 할 수 없습니다.

3. 보호 된 액세스 수정 자

보호 된 클래스가 속성이나 방법에 액세스 할 수 있지만 여전히 외부에 접근 할 수없는 개인공공 장소 사이에 있습니다.

 class Person {
  protected $name;

  public function setName($name) {
    $this->name = $name;
  }

  public function sayHello() {
    echo "Hello, my name is " . $this->name;
  }
}

class Student extends Person {
  public function study() {
    echo $this->name . " is studying.";
  }
}

$student = new Student();
$student->setName("John");
$student->sayHello();  // 산출:Hello, my name is John
$student->study();     // 산출:John is studying.

위의 코드에서 학생은 사람 으로부터 상속되므로 보호 된 $ 이름 속성에 직접 액세스 할 수 있습니다. 보호 된 수정자는 클래스 상속 구조에 사용하고 캡슐화를 유지하고 특정 유연성을 갖는 데 적합합니다.

요약

액세스 수정자를 합리적으로 사용함으로써 객체의 속성 및 방법의 액세스 범위를 효과적으로 제어하여 프로그램의 보안 및 유지 보수 가능성을 향상시킬 수 있습니다. 실제 개발 :

  • 속성을 비공개 또는 보호 로 설정하는 것이 좋습니다.

  • 데이터 보안을 향상시키기 위해 공개 방법을 통해 속성을 조작합니다.

  • 상속 관계에 따라 보호를 사용하도록 선택하십시오.

  • 속성 노출로 인한 통제 할 수없는 수정을 피하십시오.

이러한 기본 원칙을 마스터하면보다 강력하고 유지 관리 가능한 객체 지향 코드를 작성하는 데 도움이됩니다.