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 où elles peuvent être accessibles.
Il existe trois modificateurs d'accès :
-
public- la propriété ou la méthode peut être accessible de partout. C'est le comportement par défaut. -
protected- la propriété ou la méthode peut être accessible au sein de la classe et par les classes dérivées de cette classe. -
private- la propriété ou la méthode ne peut être accessible QUE 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é nom, cela fonctionnera bien (car la propriété nom est publique et peut être accessible de partout). Cependant, si vous essayez de définir la propriété couleur ou poids, cela entraînera une erreur fatale (car les propriétés couleur et poids 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 = 'Jaune'; // ERREUR
$mango->weight = '300'; // ERREUR
?> 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 la fonction 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) { // une fonction publique (par défaut)
$this->name = $n;
}
protected function set_color($n) { // une fonction protégée
$this->color = $n;
}
private function set_weight($n) { // une fonction privée
$this->weight = $n;
}
}
$mango = new Fruit();
$mango->set_name('Mango'); // OK
$mango->set_color('Jaune'); // ERREUR
$mango->set_weight('300'); // ERREUR
?>