PHP 권한 제어 수정자에 대한 자세한 설명: 일반적으로 사용되는 권한 제어 수정자를 완전히 이해하려면 특정 코드 예제가 필요합니다.
PHP 개발에서 권한 제어는 PHP의 보안과 안정성을 효과적으로 보장할 수 있는 매우 중요한 개념입니다. 코드. 권한 제어에서 수정자는 필수 요소입니다. PHP에는 세 가지 수정자(public, protected, private)가 있으며 각각 세 가지 액세스 권한을 나타냅니다. 이 기사에서는 사용 및 사용 시나리오를 자세히 소개하고 독자의 이해를 돕기 위해 특정 코드 예제를 제공합니다.
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() 메서드를 호출하면 해당 속성의 값을 외부에서 얻어와 수정할 수 있으며 해당 메서드를 호출할 수 있습니다.
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이 코드의 다른 부분으로 유출되지 않습니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!