Maison  >  Article  >  développement back-end  >  Quels sont les niveaux de contrôle d’accès aux fonctions PHP ?

Quels sont les niveaux de contrôle d’accès aux fonctions PHP ?

PHPz
PHPzoriginal
2024-04-11 10:06:01926parcourir

Il existe 3 niveaux de contrôle d'accès pour les fonctions PHP : public, protégé et privé. Les fonctions publiques sont accessibles de n'importe où, les fonctions protégées ne sont accessibles qu'à sa propre classe et sous-classes, et les fonctions privées ne sont accessibles qu'à sa propre classe. Lors de la modification du niveau de contrôle d'accès, ajoutez simplement les mots-clés correspondants avant la déclaration de la fonction, tels que fonction publique, fonction protégée, fonction privée.

PHP 函数的访问控制级别有哪些?

Niveau de contrôle d'accès de la fonction PHP

Le niveau de contrôle d'accès de la fonction PHP détermine quelles parties de la fonction sont accessibles. Il nous permet de restreindre l'accès aux fonctions, améliorant ainsi la maintenabilité et la sécurité de notre code.

Niveaux de contrôle d'accès

Il existe trois niveaux de contrôle d'accès en PHP :

  • public : Les fonctions sont accessibles de n'importe où.
  • protégé : Une fonction n'est accessible qu'à partir de la classe dans laquelle se trouve la fonction et de ses sous-classes.
  • private : Les fonctions ne sont accessibles qu'à partir de la classe dans laquelle se trouve la fonction.

Syntaxe

Lors de la modification du niveau de contrôle d'accès, ajoutez simplement le mot-clé correspondant avant la déclaration de la fonction.

// public 函数
public function myPublicFunction() {
    // ...
}

// protected 函数
protected function myProtectedFunction() {
    // ...
}

// private 函数
private function myPrivateFunction() {
    // ...
}

Cas pratique

Supposons que nous ayons une classe Utilisateur qui stocke les données utilisateur. Nous souhaitons autoriser l'accès aux données utilisateur uniquement via les méthodes publiques de cette classe. Pour y parvenir, nous allons définir la fonction qui récupère les données utilisateur comme protégée : User。我们希望只允许通过该类的公共方法访问用户数据。为了实现这一点,我们将对获取用户数据的函数设置为 protected:

class User {
    protected $name;
    protected $email;

    public function getName() {
        return $this->name;
    }

    public function getEmail() {
        return $this->email;
    }
}

现在,其他类可以通过 User 对象访问 getName()getEmail() 方法,但无法直接访问 $name$email 属性。

注意事项

  • 默认情况下,PHP 函数的访问控制级别是 public。
  • 如果尝试访问私有或受保护的函数,则会引发 Fatal Error
  • 受保护的函数可以在派生类中通过 parent::rrreee
  • Désormais, d'autres classes peuvent accéder à getName() et via l'objet <code>User getEmail. (), mais il n'y a pas d'accès direct aux propriétés $name et $email.
Notes🎜🎜🎜🎜Par défaut, le niveau de contrôle d'accès aux fonctions PHP est public. 🎜🎜Si vous essayez d'accéder à une fonction privée ou protégée, une 🎜Erreur fatale🎜 sera générée. 🎜🎜Les fonctions protégées sont accessibles dans les classes dérivées via parent::. 🎜🎜Envisagez d'utiliser des niveaux de contrôle d'accès pour protéger l'accès aux données et fonctionnalités sensibles. Une utilisation appropriée du contrôle d’accès peut améliorer la sécurité 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!

Déclaration:
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