PHP OOP - Modificateurs d'accès
PHP - Modificateurs d'accès
Les propriétés et les méthodes peuvent avoir des modificateurs d'accès qui contrôlent l'endroit où elles sont accessibles.
Il existe trois modificateurs d'accès :
-
public
- la propriété ou la méthode est accessible de partout. C'est par défaut -
protected
- la propriété ou la méthode est accessible au sein de la classe et par les classes dérivées de cette classe -
private
- la propriété ou la méthode est UNIQUEMENT accessible au sein de la classe
Dans l'exemple suivant, nous avons ajouté trois modificateurs d'accès différents à trois propriétés (nom, couleur et poids). Ici, si vous essayez de définir la propriété name, cela fonctionnera correctement (car la propriété name est publique et accessible de partout). Cependant, si vous essayez de définir la propriété color ou weight, cela entraînera une erreur fatale (car les propriétés color et weight sont protégées et privées) :
Exemple
<?php
class Fruit {
public
$name;
protected $color;
private $weight;
}
$mango = new Fruit();
$mango->name = 'Mango'; // OK
$mango->color = 'Yellow'; // ERROR
$mango->weight = '300'; // ERROR
?>
Dans l'exemple suivant, nous avons ajouté des modificateurs d'accès à deux fonctions. Ici, si vous essayez d'appeler la fonction set_color() ou set_weight() cela entraînera une erreur fatale (car les deux fonctions sont considérées comme protégées et privées), même si toutes les propriétés sont publiques :
Exemple
<?php
class Fruit {
public
$name;
public $color;
public $weight;
function set_name($n) {
// a public function (default)
$this->name = $n;
}
protected function set_color($n) {
// a protected function
$this->color = $n;
}
private function set_weight($n) {
// a private function
$this->weight = $n;
}
}
$mango = new Fruit();
$mango->set_name('Mango'); // OK
$mango->set_color('Yellow'); // ERROR
$mango->set_weight('300'); // ERROR
?>