>  기사  >  백엔드 개발  >  PHP 권한 제어 수정자에 대한 자세한 설명: 일반적으로 사용되는 권한 제어 수정자에 대한 포괄적인 이해

PHP 권한 제어 수정자에 대한 자세한 설명: 일반적으로 사용되는 권한 제어 수정자에 대한 포괄적인 이해

WBOY
WBOY원래의
2024-01-19 10:37:051024검색

PHP 권한 제어 수정자에 대한 자세한 설명: 일반적으로 사용되는 권한 제어 수정자에 대한 포괄적인 이해

PHP 권한 제어 수정자에 대한 자세한 설명: 일반적으로 사용되는 권한 제어 수정자를 완전히 이해하려면 특정 코드 예제가 필요합니다.

PHP 개발에서 권한 제어는 PHP의 보안과 안정성을 효과적으로 보장할 수 있는 매우 중요한 개념입니다. 코드. 권한 제어에서 수정자는 필수 요소입니다. PHP에는 세 가지 수정자(public, protected, private)가 있으며 각각 세 가지 액세스 권한을 나타냅니다. 이 기사에서는 사용 및 사용 시나리오를 자세히 소개하고 독자의 이해를 돕기 위해 특정 코드 예제를 제공합니다.

  1. public 수정자

public 수정자는 클래스의 속성이나 메서드 앞에 public 수정자를 추가하면 공개되어 클래스 액세스 내부와 외부에서 모두 사용할 수 있습니다. 예는 다음과 같습니다.

class Person {
  public $name;

  public function sayHello() {
    echo 'Hello!我的名字是' . $this->name;
  }
}

$person = new Person();
$person->name = 'Tom';
$person->sayHello();

위 코드를 사용하여 Person 클래스를 만들고 그 안에 공용 속성 $name과 공용 메서드 sayHello()를 정의합니다. $name 속성에 값을 할당하고 sayHello() 메서드를 호출하면 해당 속성의 값을 외부에서 얻어와 수정할 수 있으며 해당 메서드를 호출할 수 있습니다.

  1. protected 수정자

protected 수정자는 클래스 내부와 클래스의 하위 클래스로 제한됩니다. 클래스 외부의 코드가 클래스의 속성이나 메서드를 마음대로 액세스하거나 수정하지 못하도록 보호하는 데 사용할 수 있습니다. 예는 다음과 같습니다.

class Person {
  protected $name;

  protected function sayHello() {
    echo 'Hello!我的名字是' . $this->name;
  }
}

class Student extends Person {
  public function introduce() {
    echo '我是' . $this->name . ',来自阿凡达星球';
  }
}

$student = new Student();
$student->name = 'Lucy'; //会出错
$student->introduce();

위 예에서 볼 수 있듯이 새로운 Student 클래스를 만들고 Person 클래스를 상속했습니다. 보호된 $name 속성과 보호된 sayHello() 메소드는 Person 클래스에 정의되어 있으며, Student 클래스에서는 $name 속성을 표시하기 위한 공개 inform() 메소드를 정의합니다. $name 속성은 사용할 수 없습니다. 직접 액세스할 수 없으므로 잘못된 값이 할당됩니다. 이렇게 하면 $name이 코드의 다른 부분으로 유출되지 않습니다.

  1. private 한정자

private 한정자는 더 엄격하며 클래스 내에서만 액세스할 수 있고 외부 코드나 클래스의 하위 클래스에서는 액세스할 수 없습니다. 예는 다음과 같습니다.

class Person {
  private $name;

  private function sayHello() {
    echo 'Hello!我的名字是' . $this->name;
  }
}

$person = new Person();
$person->name = 'Lily'; //会出错
$person->sayHello();    //会出错

위의 예에서 볼 수 있듯이 Person 클래스를 만들고 그 안에 개인 속성 $name과 개인 메서드 sayHello()를 정의했습니다. $name 및 sayHello()는 모두 비공개로 설정되어 있으므로 외부에서 액세스할 수 없으며 외부 코드에서 액세스하려고 하면 오류가 발생합니다.

요약

위의 예를 통해 공개, 보호, 비공개의 세 가지 액세스 권한에 각각 해당하는 세 가지 수식어의 사용 및 사용 시나리오를 확인할 수 있습니다. PHP 개발에서 권한 제어 수정자를 합리적으로 사용하면 코드의 유지 관리성과 보안이 향상될 뿐만 아니라 코드의 오류와 버그를 효과적으로 방지할 수 있습니다.

위 내용은 PHP 권한 제어 수정자에 대한 자세한 설명: 일반적으로 사용되는 권한 제어 수정자에 대한 포괄적인 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.