Maison  >  Article  >  développement back-end  >  Révéler les secrets des modificateurs de contrôle d'autorisation PHP : maîtriser les compétences d'utilisation dans des applications pratiques

Révéler les secrets des modificateurs de contrôle d'autorisation PHP : maîtriser les compétences d'utilisation dans des applications pratiques

WBOY
WBOYoriginal
2024-01-19 10:06:061236parcourir

Révéler les secrets des modificateurs de contrôle dautorisation PHP : maîtriser les compétences dutilisation dans des applications pratiques

PHP est un langage de programmation largement utilisé dans le développement Web. Lors du développement d'applications Web, le contrôle des autorisations est un élément essentiel. Le contrôle des autorisations peut garantir la sécurité des données et l'intégrité fonctionnelle de l'application. PHP fournit de nombreux modificateurs de contrôle d'autorisation, dont cet article discutera.

Introduction aux modificateurs de contrôle d'autorisation

En PHP, il existe trois principaux types de modificateurs de contrôle d'autorisation : public, protégé et privé.

Public signifie accès public, et ses propriétés et méthodes sont accessibles n'importe où à l'intérieur et à l'extérieur de la classe.

protected signifie un accès protégé, et ses propriétés et méthodes sont accessibles dans la classe et les sous-classes actuelles.

private signifie accès privé, ses propriétés et méthodes ne sont accessibles que dans la classe actuelle.

En plus des trois modificateurs de contrôle d'autorisation ci-dessus, il existe également des modificateurs final et statique.

final représente la classe finale, et ses propriétés et méthodes ne peuvent pas être héritées.

static signifie une classe statique. Ses propriétés et méthodes sont accessibles n'importe où à l'intérieur et à l'extérieur de la classe, et peuvent être utilisées sans instancier la classe.

Le principe d'implémentation du contrôle des autorisations

Les propriétés et méthodes de la classe ont un modificateur pour limiter leur visibilité, réalisant ainsi le contrôle des autorisations.

L'analyseur PHP déterminera les autorisations d'accès en fonction des modificateurs. Si une propriété ou une méthode ne définit pas de modificateur, elle est par défaut publique.

Compétences d'utilisation dans des applications pratiques

Nous allons maintenant maîtriser les compétences d'utilisation des modificateurs de contrôle d'autorisation à travers des scénarios d'application réels.

  1. Empêcher la falsification des attributs

Dans de nombreuses applications Web, afin de garantir l'intégrité et la sécurité des données, nous devons restreindre certains attributs pour éviter qu'ils ne soient falsifiés. Ceci peut être réalisé en utilisant le modificateur d'attribut privé.

Ce qui suit est un exemple :

class User {
    private $username;
    private $password;
    
    public function __construct($username, $password) {
        $this->username = $username;
        $this->password = $password;
    }
    
    public function getUsername() {
        return $this->username;
    }
    
    public function getPassword() {
        return $this->password;
    }
}

$user = new User('Tom', '123456');
$user->username = 'Jerry'; // 禁止修改
  1. Empêcher le remplacement des méthodes

Dans certains cas, nous espérons qu'une méthode d'une classe ne peut pas être remplacée par ses sous-classes, ce qui peut être réalisé en utilisant le modificateur d'attribut final.

Voici un exemple :

class Animal {
    final public function move() {
        echo 'Moving...';
    }
}
 
class Dog extends Animal {
    // 错误示例
    public function move() {
        echo 'Running...';
    }
}

$dog = new Dog();
$dog->move(); // 输出 Moving...
  1. Accès aux attributs protégés

Lorsque vous devez restreindre l'accès à certains attributs, vous pouvez utiliser le modificateur d'attribut protégé.

Ce qui suit est un exemple :

class Person {
    protected $name;
    
    public function __construct($name) {
        $this->name = $name;
    }
}

class Student extends Person {
    public function getName() {
        // 错误示例
        return $this->name;
    }
}

$student = new Student('Tom');
echo $student->getName(); // 输出空白,无法访问父类属性
  1. Obtenir un accès contrôlé

Dans les applications complexes, un contrôle d'accès plus détaillé est requis pour certaines propriétés ou méthodes. Vous pouvez utiliser des méthodes publiques pour obtenir ou définir des valeurs de propriété. Cela vous permet de contrôler l'accès à la propriété via des méthodes publiques.

Ce qui suit est un exemple :

class User {
    private $username;
    private $password;
    
    public function __construct($username, $password) {
        $this->username = $username;
        $this->password = $password;
    }
    
    public function setUsername($username) {
        // 禁止修改用户名
        if ($this->username === $username) {
            return false;
        }
        
        $this->username = $username;
        return true;
    }
    
    public function setPassword($password) {
        $this->password = $password;
    }
    
    public function getUsername() {
        return $this->username;
    }
    
    public function getPassword() {
        return $this->password;
    }
}

$user = new User('Tom', '123456');
$user->setUsername('Jerry'); // 禁止修改
$user->setPassword('654321');
echo $user->getUsername() . ':' . $user->getPassword(); // 输出 Tom:654321

Résumé

Dans le développement PHP, le contrôle des autorisations est un élément très important grâce au contrôle des autorisations, vous pouvez contrôler l'étendue de l'accès, protéger la sécurité des données et améliorer la fiabilité et la stabilité de l'application. . Cet article présente les modificateurs de contrôle d'autorisation couramment utilisés en PHP, les explique et les démontre à travers des scénarios d'application réels. J'espère qu'il sera utile aux développeurs 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!

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