Maison >développement back-end >tutoriel php >Analyse des modificateurs de contrôle d'autorisation PHP : analyse approfondie des caractéristiques et des fonctions de divers modificateurs
Dans le développement d'applications Web, le contrôle des autorisations est une fonction très importante, en particulier lorsque l'application implique l'authentification des utilisateurs et la protection des informations sensibles. En PHP, les modificateurs de contrôle d'autorisation sont un outil couramment utilisé pour contrôler les autorisations d'accès aux classes, propriétés et méthodes. Cet article analysera en profondeur les caractéristiques et les fonctions de divers modificateurs de contrôle d'autorisation en PHP et démontrera leur utilisation à travers des exemples de code spécifiques.
public est le modificateur le plus basique de PHP, ce qui signifie que les classes, propriétés et méthodes sont accessibles. En d’autres termes, si une classe, une propriété ou une méthode est déclarée publique, elle est accessible de n’importe où. Par exemple :
class Car { public $color; // public属性 public function drive() { // public方法 echo "Driving"; } }
Le code ci-dessus définit une classe nommée Car
, qui contient une propriété publique $color
et une méthode publique drive()
. Puisque ces membres sont publics, ils peuvent être consultés et appelés par n'importe quel autre code, par exemple : 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 est un autre modificateur d'autorisation en PHP, il indique que la classe et ses sous-classes peuvent accéder à la propriété ou à la méthode, mais pas les autres codes. Par exemple :
rrreee🎜Dans le code ci-dessus,$color
et drive()
sont déclarés comme protégés, donc seules la classe Car
et son code dans les sous-classes peut y accéder et les appeler. Par exemple : 🎜rrreee🎜Le code ci-dessus définit une sous-classe nommée SportsCar
et y définit une méthode publique, grâce à laquelle le protégé dans la classe Car
peut être défini comme propriété $couleur. Puisque SportsCar
hérite de la classe Car
, il peut accéder et appeler les membres protégés de la classe Car
. 🎜$mileage
et update_mileage()
sont déclarés comme privés, uniquement ceux de la classe Car
Seul le code peut y accéder et les appeler. Par exemple : 🎜rrreee🎜Le code ci-dessus démontre que les propriétés privées et les méthodes privées ne sont pas accessibles et modifiables en dehors de la classe. 🎜Car
, qui contient une méthode publique finale drive()
. Dans la classe SportsCar
, tentative de remplacer la méthode drive()
, mais comme elle est déclarée finale dans la classe Car
, le code produit une erreur . Cela signifie que la méthode a été définie comme finale et ne peut pas être modifiée par les sous-classes. 🎜🎜Résumé🎜🎜Dans cet article, nous avons analysé en profondeur les caractéristiques et les fonctions de divers modificateurs d'autorisation en PHP. Public autorise l'accès et les appels de n'importe où, protected autorise l'accès et les appels à la classe et à ses sous-classes, et private autorise uniquement l'accès et les appels au sein de la classe. Final signifie que ces membres sont dans un « état final » et ne peuvent pas être modifiés par les sous-classes. Comprendre comment utiliser ces modificateurs d'autorisations est la clé d'un bon contrôle des autorisations et d'une bonne conception du code. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!