La visibilité d'une propriété ou d'une méthode peut être définie en préfixant
la déclaration avec un mot-clé : public,
protected ou private.
Les éléments déclarés publics (public)
peuvent être utilisés par n'importe quelle partie
du programme. L'accès aux éléments protégés (protected)
est limité aux classes et parents hérités (et à la classe qui a défini l'élément).
L'accès aux éléments privés (private) est uniquement réservé
à la classe qui les a définis.
/** * Définition de MyClass2 */ class MyClass2 extends MyClass { // On peut redéclarer les éléments publics ou protégés, mais pas les privés protected $protected = 'Protected2';
$obj2 = new MyClass2(); echo $obj->public; // Fonctionne echo $obj2->private; // Indéfini echo $obj2->protected; // Erreur fatale $obj2->printHello(); // Affiche Public, Protected2 et non Private
?>
Note :
La méthode de déclaration de variable en PHP 4 avec le mot
clé var est toujours supportée pour
des raisons de compatibilité (en tant que synonyme du mot clé public).
Depuis PHP 5.1.3, son utilisation génère une erreur de niveau
E_STRICT.
Les méthodes des classes doivent être définies en tant que
publiques, privées ou protégées. Les méthodes sans déclaration
seront automatiquement définies comme étant publiques.
Exemple 19-11. Déclaration d'une méthode
<?php /** * Définition de MyClass */ class MyClass { // Les contructeurs doivent être publics public function __construct() { }
// Déclaration d'une méthode publique public function MyPublic() { }
// Déclaration d'une méthode protégée protected function MyProtected() { }
// Déclaration d'une méthode privée private function MyPrivate() { }
// Celle-ci sera publique function Foo() { $this->MyPublic(); $this->MyProtected(); $this->MyPrivate(); } }