Dans le développement de PHP, la programmation orientée objet (POO) est un paradigme de programmation grand public. Il organise le code à travers la structure des "classes" et des "objets", ce qui rend la structure du programme plus claire, plus facile à développer et à maintenir. Dans le développement réel, il est crucial de contrôler raisonnablement les droits d'accès des propriétés et des méthodes dans une classe, ce qui nécessite l'utilisation de modificateurs d'accès.
Cet article expliquera en détail les trois modificateurs d'accès dans PHP: public (public), privé (privé) et protégé (protégé), et vous aider à maîtriser leur utilisation par des exemples.
Les modificateurs d'accès sont utilisés pour contrôler le niveau d'accès des propriétés et des méthodes dans la classe, évitant ainsi les interférences du code externe aux implémentations internes et l'encapsulation du programme. PHP prend en charge les trois modificateurs suivants:
Public : accès public, accessible n'importe où.
Privé : accès privé, uniquement pour une utilisation interne de la classe.
Protégé : accès protégé, uniquement pour les sous-classes internes de la classe.
Le public est le modificateur d'accès le plus courant, ce qui signifie que les propriétés ou les méthodes d'une classe sont ouvertes à l'extérieur et sont accessibles ou appelées n'importe où.
class Person {
public $name;
public function sayHello() {
echo "Hello, my name is " . $this->name;
}
}
$person = new Person();
$person->name = "John";
$person->sayHello(); // Sortir:Hello, my name is John
Dans cet exemple, $ Name et Sayhello () sont publics. Les affectations et les appels externes peuvent être directement attribués aux valeurs et appelés, ce qui est très intuitif, mais il peut facilement entraîner la modification des attributs à volonté, affectant la stabilité du programme.
Les propriétés et méthodes modifiées par privé ne peuvent être accessibles qu'à l'intérieur de la classe qui les définit et ne sont pas accessibles directement à l'extérieur. Cette méthode améliore l'encapsulation et est un moyen courant de protéger les implémentations internes de la classe.
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(); // Sortir:Hello, my name is John
En fournissant la méthode publique SetName () , l'extérieur peut toujours définir le nom de $ indirectement, mais la propriété ne peut pas être accessible directement, protégeant efficacement l'intégrité des données.
Protégé est entre privé et public , qui permet aux classes héréditaires d'accéder à la propriété ou à la méthode, mais est toujours inaccessible à l'extérieur.
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(); // Sortir:Hello, my name is John
$student->study(); // Sortir:John is studying.
Dans le code ci-dessus, l'étudiant hérite de la personne , afin que vous puissiez accéder directement à la propriété Name Protected. Le modificateur protégé est adapté à une utilisation dans les structures d'héritage de classe, à maintenir l'encapsulation et à avoir une certaine flexibilité.
En utilisant le modificateur d'accès rationnellement, la portée d'accès des propriétés et méthodes de l'objet peut être contrôlée efficacement, améliorant ainsi la sécurité et la maintenabilité du programme. En développement réel:
Il est recommandé de définir l'attribut à privé ou protégé ;
Manipuler les attributs par le biais de méthodes publiques pour améliorer la sécurité des données;
Choisissez d'utiliser protégé en fonction de la relation d'héritage;
Évitez les modifications incontrôlables causées par l'exposition aux propriétés.
La maîtrise de ces principes de base vous aidera à écrire un code orienté objet plus robuste et plus maintenable.