PHP 개발에서 객체 지향 프로그래밍 (OOP)은 주류 프로그래밍 패러다임입니다. "클래스"및 "객체"의 구조를 통해 코드를 구성하여 프로그램 구조를 더 명확하고 확장 및 유지 관리하기 쉽게 만듭니다. 실제 개발에서는 클래스에서 속성 및 방법의 액세스 권한을 합리적으로 제어하는 것이 중요하며, 이는 액세스 수정자를 사용해야합니다.
이 기사는 PHP의 세 가지 액세스 수정 자 : 공개 (공개), 개인 (개인) 및 보호 (보호)를 자세히 설명하고 예제를 통해 사용량을 마스터하도록 도와줍니다.
액세스 수정자는 클래스에서 속성 및 메소드의 액세스 수준을 제어하는 데 사용되므로 외부 코드에서 내부 구현 및 프로그램의 캡슐화에 대한 간섭을 피할 수 있습니다. PHP는 다음 세 가지 수정자를 지원합니다.
공개 : 공개 액세스, 어디서나 접근 가능.
비공개 : 개인 액세스, 수업의 내부 사용에만 해당됩니다.
보호 : 보호 된 액세스, 클래스의 내부 및 서브 클래스에만 해당됩니다.
대중은 가장 일반적인 액세스 수정 자입니다. 즉, 클래스의 속성 또는 방법이 외부에 개방되어 있으며 어디서나 액세스하거나 전화 할 수 있습니다.
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
이 예에서는 $ name 과 sayhello ()가 모두 공개됩니다. 외부 할당과 통화는 값에 직접 할당되어 호출 될 수 있으며, 이는 매우 직관적이지만, 속성이 마음대로 변경되어 프로그램의 안정성에 영향을 줄 수 있습니다.
비공개 로 수정 된 속성 및 방법은 클래스 내부에서만 액세스 할 수 있으며 외부에서 직접 액세스 할 수 없습니다. 이 방법은 캡슐화를 향상시키고 클래스의 내부 구현을 보호하는 일반적인 수단입니다.
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 () 메소드를 제공함으로써 외부는 여전히 $ 이름을 간접적으로 설정할 수 있지만 속성에 직접 액세스 할 수 없어 데이터의 무결성을 효과적으로 보호 할 수 없습니다.
보호 된 클래스가 속성이나 방법에 액세스 할 수 있지만 여전히 외부에 접근 할 수없는 개인 과 공공 장소 사이에 있습니다.
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.
위의 코드에서 학생은 사람 으로부터 상속되므로 보호 된 $ 이름 속성에 직접 액세스 할 수 있습니다. 보호 된 수정자는 클래스 상속 구조에 사용하고 캡슐화를 유지하고 특정 유연성을 갖는 데 적합합니다.
액세스 수정자를 합리적으로 사용함으로써 객체의 속성 및 방법의 액세스 범위를 효과적으로 제어하여 프로그램의 보안 및 유지 보수 가능성을 향상시킬 수 있습니다. 실제 개발 :
속성을 비공개 또는 보호 로 설정하는 것이 좋습니다.
데이터 보안을 향상시키기 위해 공개 방법을 통해 속성을 조작합니다.
상속 관계에 따라 보호를 사용하도록 선택하십시오.
속성 노출로 인한 통제 할 수없는 수정을 피하십시오.
이러한 기본 원칙을 마스터하면보다 강력하고 유지 관리 가능한 객체 지향 코드를 작성하는 데 도움이됩니다.