Modificateurs d’accès Public, Private et Protected en PHP
Les modificateurs d’accès spécifient le niveau d’accès aux propriétés et méthodes d’une classe. Les modificateurs d’accès peuvent être public, private ou protected.
[wx_adsense]
Pourquoi avons-nous besoin de modificateurs d’accès:
Les modificateurs d’accès sont utilisés comme composant clé pour l’encapsulation et le masquage de données. En utilisant l’un des spécificateurs d’accès mentionnés ci-dessus, c’est-à-dire public, private ou protected, vous pouvez masquer ou afficher les éléments internes de votre classe depuis l’extérieur.
Le modificateur d’accès private:
Les membres d’une classe déclarés « Private » ne sont accessibles que par les fonctions de la classe. Ils ne sont pas autorisés à être accédés directement par un objet ou une fonction en dehors de la classe. Seules les fonctions membres sont autorisées à accéder aux données privées d’une classe. Voir l’exemple ci-dessous:
<?php
class Person {
private $firstName;
public function setFirstName($firstName) {
$this->firstName = $firstName;
}
public function getFirstName() {
return $this->firstName;
}
}
$p = new Person();
$p->setFirstName("Jean");
echo $p->firstName;
//error, $firstNamee n'est pas accessible en dehors de la classe
echo $p->getFirstName();
// cela fonctionne, car les méthodes de la classe ont accès public
?>
[wx_adsense]
Le modificateur d’accès public:
Tous les membres d’une classe déclarés « public » seront accessible depuis n’importe où. Les données membres et les fonctions membres déclarées « public » sont également accessibles aux autres classes. Les membres publics d’une classe sont accessibles de n’importe où dans le programme en utilisant l’opérateur d’accès direct aux membres (->) avec l’objet de cette classe.
<?php
class Person {
public $firstName;
public function setFirstName($firstName) {
$this->firstName = $firstName;
}
public function getFirstName() {
return $this->firstName;
}
}
$p = new Person();
$p->setFirstName("Jean");
echo $p->firstName;//Cela fonctionnera sans erreur
$p->firstName = "Thomas"; //Cela fonctionnera aussi
?>
[wx_adsense]
Le modificateur d’accès protected:
Le modificateur d’accès « Protected » est similaire au modificateur d’accès « Private ». La différence est que les membres de la classe déclarés comme « Protected » sont inaccessibles en dehors de la classe, mais ils peuvent être accessibles par n’importe quelle sous-classe (classe fille) de cette classe.
<?php
class Person {
protected $firstName;
public function setFirstName($firstName) {
$this->firstName = $firstName;
}
public function getFirstName() {
return $this->firstName;
}
}
class Professor extends Person {
private $course;
public function setInfo($firstName, $course) {
//firstName est accessible depuis une classe fille
$this->firstName = $firstName;
$this->course = $course;
}
}
$p = new Professor();
$p->setInfo("Bob","Math");
//firstName n'est pas accessible depuis l'extérieur
echo $p->firstName;
?>
En PHP5, les modificateurs d’accès sont publics par défaut. Cela signifie que si vous ne spécifiez pas le modificateur d’accès pour un membre de données ou une méthode, le modificateur d’accès « public » sera appliqué par défaut.
[wx_amazon]

