웹 애플리케이션 개발에서 권한 제어는 매우 중요한 기능이며, 특히 애플리케이션에 사용자 인증 및 민감한 정보 보호가 포함되는 경우 더욱 그렇습니다. PHP에서 권한 제어 수정자는 클래스, 속성 및 메서드에 대한 액세스 권한을 제어하는 데 사용되는 일반적인 도구입니다. 이 기사에서는 PHP의 다양한 권한 제어 수정자의 특성과 기능을 심층적으로 분석하고 특정 코드 예제를 통해 그 사용법을 보여줍니다.
public은 PHP에서 가장 기본적인 수정자로서 클래스, 속성 및 메서드에 액세스할 수 있음을 의미합니다. 즉, 클래스, 속성 또는 메서드가 공개로 선언되면 어디서나 액세스할 수 있습니다. 예:
class Car { public $color; // public属性 public function drive() { // public方法 echo "Driving"; } }
위 코드는 $color
공용 속성과 drive()
공용 메서드를 포함하는 Car
라는 클래스를 정의합니다. . 이러한 멤버는 공개이므로 다른 코드로 액세스하고 호출할 수 있습니다. 예를 들어: Car
的类,其中包含一个public属性$color
和一个public方法drive()
。由于这些成员都是public的,它们可以被任何其他代码访问和调用,例如:
$myCar = new Car(); $myCar->color = "red"; // 访问public属性 $myCar->drive(); // 调用public方法
protected是PHP中的另一种权限修饰符,它表示该类和其子类可以访问该属性或方法,而其他代码则不能。例如:
class Car { protected $color; // protected属性 protected function drive() { // protected方法 echo "Driving"; } }
在上面的代码中,$color
和drive()
都被声明为protected,因此只有Car
类及其子类中的代码可以访问和调用它们。例如:
class SportsCar extends Car { public function set_color($color) { $this->color = $color; // 可以访问protected属性 } } $sportsCar = new SportsCar(); $sportsCar -> set_color("blue"); // 调用public方法
上面代码定义了一个名为SportsCar
的子类,并在其中定义了一个public方法,通过该方法可以设置Car
类中的protected属性$color
。由于SportsCar
继承了Car
类,所以它可以访问和调用Car
类中的protected成员。
private是PHP中最严格的权限修饰符,用于表示只有该类中的代码可以访问该成员。其他类和对象都不能访问或调用它。例如:
class Car { private $mileage; // private属性 private function update_mileage() { // private方法 $this -> mileage++; } }
在上面的代码中,$mileage
和update_mileage()
都被声明为private,只有在Car
类中的代码才可以访问和调用它们。例如:
$myCar = new Car(); $myCar->mileage = 1000; // 这里会报错,因为$mileage是私有的 $myCar->update_mileage(); // 这里会报错,因为$update_mileage()是私有的
上面代码演示了无法在类外部访问和修改private属性和调用private方法。
除了以上三种权限修饰符,PHP中还有一种修饰符:final。final可以用于类、属性和方法中,用于表示它们是“终态”,即不能被子类继承或重写。例如:
class Car { final public function drive() { // final public方法 echo "Driving"; } } class SportsCar extends Car { public function drive() { // 这里会报错,因为drive()被声明为final echo "Driving fast"; } }
上面的代码定义一个名为Car
的类,其中包含一个final public方法drive()
。在SportsCar
类中,尝试重写drive()
方法,但因为它在Car
rrreee
protected는 PHP의 또 다른 권한 수정자입니다. 이는 클래스와 해당 서브클래스는 속성이나 메서드에 액세스할 수 있지만 다른 코드는 액세스할 수 없습니다. 예:
rrreee🎜위 코드에서$color
및 drive()
는 모두 protected로 선언되었으므로 Car
클래스와 서브클래스의 코드는 이에 액세스하고 호출할 수 있습니다. 예: 🎜rrreee🎜위 코드는 SportsCar
라는 하위 클래스를 정의하고 그 안에 공개 메서드를 정의합니다. 이를 통해 Car
클래스의 보호 항목을 $색상
. SportsCar
는 Car
클래스를 상속하므로 Car
클래스의 보호된 멤버에 액세스하고 호출할 수 있습니다. 🎜$mileage
및 update_mileage()
는 모두 비공개로 선언되었으며 Car
클래스의 코드만 선언되었습니다. 코드만 액세스하고 호출할 수 있습니다. 예: 🎜rrreee🎜위 코드는 프라이빗 속성과 프라이빗 메서드가 클래스 외부에서 액세스되거나 수정될 수 없음을 보여줍니다. 🎜drive()
를 포함하는 Car
라는 클래스를 정의합니다. SportsCar
클래스에서 drive()
메서드를 재정의하려고 시도했지만 Car
클래스에서 final로 선언되었기 때문에 코드에서 실수가 발생합니다. . 이는 해당 메소드가 final로 정의되었으며 하위 클래스에서 수정할 수 없음을 의미합니다. 🎜🎜요약🎜🎜이 글에서는 PHP의 다양한 권한 수정자의 특징과 기능을 심층적으로 분석했습니다. Public은 어디서나 액세스 및 호출을 허용하고, protected는 클래스와 해당 하위 클래스에 대한 액세스 및 호출을 허용하며, Private은 클래스 내의 액세스 및 호출만 허용합니다. Final은 이러한 멤버가 "최종 상태"에 있고 하위 클래스에서 수정할 수 없음을 의미합니다. 이러한 권한 수정자를 사용하는 방법을 이해하는 것은 좋은 권한 제어 및 코드 디자인의 핵심입니다. 🎜위 내용은 PHP 권한 제어 수정자 분석: 다양한 수정자의 특성 및 기능에 대한 심층 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!