Position actuelle: Accueil> Derniers articles> Explication détaillée du modificateur d'autorisation PHP: la différence et l'utilisation du public, protégé, privé, final et abstrait

Explication détaillée du modificateur d'autorisation PHP: la différence et l'utilisation du public, protégé, privé, final et abstrait

M66 2025-07-09

Aperçu des modificateurs d'autorisation PHP

Dans le développement de PHP, le contrôle de l'autorisation est l'un des mécanismes de base pour la mise en œuvre de la sécurité du programme et de la conception modulaire. En utilisant raisonnablement les modificateurs d'autorisation, la portée d'accès des membres de la classe peut être efficacement restreinte, les abus de code peuvent être évités et la maintenabilité du programme peut être améliorée.

PHP fournit principalement cinq modificateurs d'autorisation: public , protégé , privé , final et abstrait . Les éléments suivants seront expliqués séparément et seront expliqués en combinaison avec l'exemple de code.

Modificateur public

Le public est utilisé pour déclarer les membres du public et peut être accessible librement à l'intérieur, à l'extérieur et dans les sous-classes. Il s'agit de la méthode de contrôle d'accès par défaut et convient aux méthodes ou propriétés qui doivent être largement appelées.

 class Person {
    public $name;

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

$person = new Person();
$person->name = 'Tom';
$person->sayHello();

modificateur protégé

Protégé est utilisé pour définir des membres protégés, qui ne sont accessibles qu'à l'intérieur ou dans des sous-classes héréditaires, et ne sont pas accessibles directement à l'extérieur de la classe.

 class Animal {
    protected $name;

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

class Cat extends Animal {
    public function setName($name) {
        $this->name = $name;
    }

    public function sayHello() {
        echo 'Hello, I am ' . $this->getName();
    }
}

$cat = new Cat();
$cat->setName('Tom');
$cat->sayHello();

Modificateur privé

Les membres déclarés par privé ne peuvent être utilisés que dans la classe actuelle et ne sont pas accessibles par des sous-classes. Il s'agit de la méthode de contrôle d'accès la plus stricte, souvent utilisée dans les détails de l'implémentation interne de la classe.

 class Person {
    private $name;

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

    public function sayHello() {
        echo 'Hello, my name is ' . $this->getName();
    }
}

$person = new Person();
$person->name = 'Tom';  // Une erreur sera signalée ici
$person->sayHello();

Modificateur final

Final est utilisé pour empêcher les classes d'être héritées ou les méthodes écrasées. Les méthodes déclarées par final ne peuvent pas être remplacées dans les sous-classes et conviennent à la logique de base qui ne souhaitent pas être modifiées.

 class Animal {
    final public function eat() {
        echo 'I am eating';
    }
}

class Cat extends Animal {
    public function eat() {  // Une erreur sera signalée ici
        echo 'I am not eating';
    }
}

$cat = new Cat();
$cat->eat();

Rabordant abstrait

Le résumé est utilisé pour définir des classes abstraites et des méthodes abstraites. Les classes abstraites ne peuvent pas être instanciées, elles doivent être héritées par les sous-classes et implémenter toutes les méthodes abstraites.

 abstract class Animal {
    abstract public function eat();
}

class Cat extends Animal {
    public function eat() {
        echo 'I am eating fish';
    }
}

$cat = new Cat();
$cat->eat();

Résumer

Comprendre et utiliser rationnellement les modificateurs de contrôle d'accès PHP est la base de l'écriture de code robuste, sécurisé et extensible. Chaque modificateur a son propre objectif spécifique. Lors de la rédaction de classes et de méthodes, les développeurs doivent choisir le niveau d'accès approprié en fonction des besoins réels pour améliorer l'encapsulation et la sécurité du code.