Visibilité d’une variable de classe

Notez que cet article a été écrit il y a plus de 3 ans, mais il n'est pas forcément obsolète.

Variable de classe
Variable de classe

Variable de classe :

La visibilité d’une propriété (variable), d’une méthode (fonction) peut être définie en préfixant sa déclaration avec un mot-clé : publicprotected, ou private. Les éléments déclarés comme publics peuvent être utilisés par n’importe quelle partie du programme. L’accès aux éléments protégés est limité à la classe elle-même, ainsi qu’aux classes qui en héritent. L’accès aux éléments privés est uniquement réservé à la classe qui les a défini.

Un membre d’une classe peut également être :

  • publicvisible par tout le monde.
  • private : visible par la classe uniquement,
  • protectedvisible par tout le package, et par les sous-classes dans le cadre de l’héritage*,

* dans le cadre de l’héritage : une sous-classe peut accéder à un membre protected qu’elle a hérité d’une classe mère, mais elle ne peut pas accéder à un membre protected hérité par une autre sous-classe.

Attention à ne pas confondre le mot-clé static et les modificateurs d’accès.

Un membre d’une classe peut être :

  • staticlié à la classe,
  • pas de mot clé : lié à l’instance.

Les deux notions peuvent être combinées comme on veut :

  • int a : lié à l’instance, visible par tout le package
  • static int b : lié à la classe, visible par tout le package
  • private int c : lié à l’instance, visible par la classe uniquement
  • private static int d : lié à la classe, visible par la classe uniquement
  • protected int e : lié à l’instance, visible par tout le package et par les sous-classes
  • protected static int f : lié à la classe, visible par tout le package et par les sous-classes
  • public int a : lié à l’instance, visible par tout le monde
  • public static int g : lié à la classe, visible par tout le monde

En PHP, une variable non définie par un mot clé est liée à la fonction où elle est définie. Une variable extérieure à une fonction peut être utilisée dans une fonction seulement si elle est passée en argument ou si elle est appelée à l’intérieur de la fonction par le mot clé global.

Et hop, une petite explication sur la portée des variables, en php ou autre.

Soumettre un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables.