PHP 개발에서 권한 제어는 프로그램 보안 및 모듈 식 설계를 구현하기위한 핵심 메커니즘 중 하나입니다. 허가 수정자를 합리적으로 사용함으로써 클래스 멤버의 액세스 범위는 효과적으로 제한 될 수 있으며 코드 남용을 피할 수 있으며 프로그램 유지 관리는 개선 될 수 있습니다.
PHP는 주로 공개 , 보호 , 개인 , 최종 및 초록의 5 가지 권한 수정자를 제공합니다. 다음은 별도로 설명되며 샘플 코드와 함께 설명됩니다.
대중은 공개 회원을 선언하는 데 사용되며 내부, 외부 및 서브 클래스로 자유롭게 액세스 할 수 있습니다. 기본 액세스 제어 방법이며 광범위하게 호출 해야하는 방법이나 속성에 적합합니다.
class Person {
public $name;
public function sayHello() {
echo 'Hello, my name is ' . $this->name;
}
}
$person = new Person();
$person->name = 'Tom';
$person->sayHello();
보호는 보호 된 멤버를 정의하는 데 사용되며, 이는 내부 또는 상속 된 서브 클래스로 만 액세스 할 수 있으며 클래스 밖에서 직접 액세스 할 수 없습니다.
class Animal {
protected $name;
protected function getName() {
return $this->name;
}
}
class Cat extends Animal {
public function setName($name) {
$this->name = $name;
}
public function sayHello() {
echo 'Hello, I am ' . $this->getName();
}
}
$cat = new Cat();
$cat->setName('Tom');
$cat->sayHello();
비공개 로 선언 한 멤버는 현재 클래스에서만 사용할 수 있으며 서브 클래스로 액세스 할 수 없습니다. 이것은 클래스의 내부 구현 세부 사항에 종종 사용되는 가장 엄격한 액세스 제어 방법입니다.
class Person {
private $name;
private function getName() {
return $this->name;
}
public function sayHello() {
echo 'Hello, my name is ' . $this->getName();
}
}
$person = new Person();
$person->name = 'Tom'; // 오류가 여기에보고됩니다
$person->sayHello();
최종은 클래스가 상속받지 않거나 방법을 덮어 쓰는 것을 방지하는 데 사용됩니다. Final 에 의해 선언 된 방법은 서브 클래스에서 무시할 수 없으며 수정되기를 원하지 않는 핵심 논리에 적합합니다.
class Animal {
final public function eat() {
echo 'I am eating';
}
}
class Cat extends Animal {
public function eat() { // 오류가 여기에보고됩니다
echo 'I am not eating';
}
}
$cat = new Cat();
$cat->eat();
초록은 추상 클래스와 추상 방법을 정의하는 데 사용됩니다. 초록 클래스는 인스턴스화 할 수 없으며 서브 클래스에 의해 상속되어 모든 추상 방법을 구현해야합니다.
abstract class Animal {
abstract public function eat();
}
class Cat extends Animal {
public function eat() {
echo 'I am eating fish';
}
}
$cat = new Cat();
$cat->eat();
PHP 액세스 제어 수정자를 이해하고 합리적으로 사용하는 것은 강력하고 안전하며 확장 가능한 코드를 작성하는 기초입니다. 각 수정자는 고유 한 목적을 가지고 있습니다. 클래스 및 방법을 작성할 때 개발자는 코드의 캡슐화 및 보안을 향상시키기 위해 실제 요구에 따라 적절한 액세스 수준을 선택해야합니다.