Maison > développement back-end > tutoriel php > Introduction à la programmation orientée objet PHP : comment utiliser les modificateurs d'accès pour protéger les propriétés et les méthodes des objets

Introduction à la programmation orientée objet PHP : comment utiliser les modificateurs d'accès pour protéger les propriétés et les méthodes des objets

WBOY
Libérer: 2023-07-30 14:14:01
original
814 Les gens l'ont consulté

Introduction à la programmation orientée objet PHP : Comment utiliser les modificateurs d'accès pour protéger les propriétés et les méthodes des objets

En PHP, la programmation orientée objet (POO) est une méthode de programmation très courante et puissante. De cette manière, nous pouvons résumer des entités en objets et définir leurs propriétés et méthodes pour décrire leur comportement. Cependant, nous devons parfois restreindre l'accès à un objet pour protéger son état interne et certaines méthodes clés. À cette fin, PHP fournit des modificateurs d'accès pour nous aider à atteindre cet objectif.

Il existe trois modificateurs d'accès couramment utilisés en PHP : public, privé et protégé. Différents modificateurs d'accès définissent la visibilité et l'accessibilité des propriétés et méthodes d'un objet au monde extérieur. Ci-dessous, nous présenterons en détail l’utilisation de ces trois modificateurs d’accès.

  1. Modificateur d'accès public

Le modificateur d'accès public est le modificateur le plus courant, ce qui signifie que les propriétés et les méthodes de l'objet sont accessibles et appelées de n'importe où. Lorsque nous ne définissons aucun modificateur d'accès, la valeur par défaut est le modificateur d'accès public.

Généralement, nous définissons les propriétés d'une classe comme privées ou protégées, et définissons les méthodes comme publiques, afin que le code externe puisse accéder et exploiter les propriétés de l'objet via les méthodes. Voici un exemple d'utilisation de modificateurs d'accès public :

class Person {
  public $name;
  
  public function sayHello() {
    echo "Hello, my name is ".$this->name;
  }
}

$person = new Person();
$person->name = "John";
$person->sayHello();  // 输出 "Hello, my name is John"
Copier après la connexion

Dans le code ci-dessus, nous définissons une classe Person avec l'attribut $name et sayHello( ) Les méthodes sont toutes publiques. En définissant $name comme propriété publique, le code externe peut directement modifier et accéder à la valeur de la propriété. La méthode sayHello() peut imprimer un message d'accueil dans du code externe en instanciant l'objet et en appelant la méthode. Person类,其中$name属性和sayHello()方法都是公有的。通过将$name设置为公有属性,外部代码可以直接修改和访问该属性的值。而sayHello()方法可以在外部代码中通过实例化对象并调用该方法来打印输出一条问候语。

  1. 私有(private)访问修饰符

私有访问修饰符表示对象的属性和方法只能在所属的类内部访问和调用,外部代码无法直接访问。为了访问私有属性和方法,我们需要使用类内部定义的公有方法。下面是一个使用私有访问修饰符的示例:

class Person {
  private $name;
  
  public function setName($name) {
    $this->name = $name;
  }
  
  public function sayHello() {
    echo "Hello, my name is ".$this->name;
  }
}

$person = new Person();
$person->setName("John");
$person->sayHello();  // 输出 "Hello, my name is John"
Copier après la connexion

在上面的代码中,$name属性被定义为私有的,外部代码无法直接访问。为了对该属性赋值,我们定义了一个公有的setName($name)方法,并在其中通过方法内部访问私有属性来设置其值。同样,sayHello()方法可以在外部代码中通过实例化对象并调用该方法来打印输出问候语。

  1. 受保护(protected)访问修饰符

受保护访问修饰符表示对象的属性和方法只能在所属的类及其子类中访问和调用,外部代码无法直接访问。和私有访问修饰符类似,为了访问受保护的属性和方法,我们也需要使用类内部定义的公有方法。下面是一个使用受保护访问修饰符的示例:

class Person {
  protected $name;
  
  public function setName($name) {
    $this->name = $name;
  }
  
  public function sayHello() {
    echo "Hello, my name is ".$this->name;
  }
}

class Student extends Person {
  public function study() {
    echo $this->name." is studying.";
  }
}

$student = new Student();
$student->setName("John");
$student->sayHello();  // 输出 "Hello, my name is John"
$student->study();  // 输出 "John is studying."
Copier après la connexion

上面的代码中,Person类的$name属性被定义为受保护的,而Student类继承了Person类。在Student类内部,我们可以直接访问和调用继承自Person类的受保护属性和方法。在外部代码中,我们通过实例化Student

    Modificateur d'accès privé

    🎜Le modificateur d'accès privé signifie que les propriétés et les méthodes de l'objet ne peuvent être consultées et appelées que dans la classe à laquelle elles appartiennent, et ne peuvent pas être directement accessibles par du code externe. . Afin d'accéder aux propriétés et méthodes privées, nous devons utiliser des méthodes publiques définies dans la classe. Voici un exemple d'utilisation du modificateur d'accès privé : 🎜rrreee🎜 Dans le code ci-dessus, la propriété $name est définie comme privée et n'est pas directement accessible par du code externe. Afin d'attribuer une valeur à cette propriété, nous définissons une méthode publique setName($name) et définissons sa valeur en accédant à la propriété privée à l'intérieur de la méthode. De même, la méthode sayHello() peut être utilisée dans du code externe pour imprimer le message d'accueil en instanciant l'objet et en appelant la méthode. 🎜
      🎜Modificateur d'accès protégé🎜🎜🎜Le modificateur d'accès protégé signifie que les propriétés et méthodes de l'objet ne sont accessibles et appelées que dans la classe à laquelle il appartient et ses sous-classes, et ne sont pas accessibles par accès direct par code externe. Semblable aux modificateurs d'accès privés, pour accéder aux propriétés et méthodes protégées, nous devons également utiliser des méthodes publiques définies dans la classe. Voici un exemple d'utilisation du modificateur d'accès protégé : 🎜rrreee🎜Dans le code ci-dessus, l'attribut $name de la classe Person est défini comme protégé, tandis que le Student hérite de la classe Person. À l'intérieur de la classe Student, nous pouvons accéder et appeler directement les propriétés et méthodes protégées héritées de la classe Person. À partir du code externe, nous accédons et appelons les propriétés et méthodes protégées en instanciant un objet Student et en appelant ses méthodes publiques définies. 🎜🎜En utilisant des modificateurs d'accès, nous pouvons mieux contrôler les droits d'accès des objets et éviter certains accès et opérations déraisonnables. Dans le développement réel, nous devons raisonnablement sélectionner et utiliser des modificateurs d'accès en fonction des besoins et des principes de conception. J'espère que cet article vous aidera à comprendre et à utiliser les modificateurs d'accès en PHP ! 🎜

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal