Portée des variables
Par Goupil
Lundi 26 mars 2007
Portez vous bien !
Les variables utilisées dans Visual FoxPro
peuvent avoir une portée (étendue) différente suivant la
manière dont elles ont été déclarées. De
cette déclaration dépendra leur visibilité par les programmes,
procédures, et objets; ainsi que leur durée de vie.
Il existe 3 sortes de variables, dont font aussi partie les variables issues
du passage de paramètres. On distingue les variables locales, privées
et publiques (globales). Par défaut une variable est privée (private)
et le fait de créer une variable par exemple par lnvar=150 crée
une variable privée. L'aide de Visual Foxpro 6 donne les définitions
suivantes :
Variable
Emplacement de la mémoire de l'ordinateur dans lequel sont stockées
des données. Vous pouvez modifier le contenu d'une variable, mais son
nom et sa zone de stockage sont réservés jusqu'à ce que
vous terminiez la session Visual FoxPro ou que vous supprimiez la variable.
Les variables et leurs valeurs ne sont pas conservées, sauf si vous les
enregistrez sur disque avant de quitter Visual FoxPro.
Durée de vie
Terme se rapportant à une variable qui continue d'exister après
qu'un appel de fonction ou un programme soit terminé. Les variables globales
continuent d'exister, mais pas les variables locales.
Variables PRIVEES - Commande PRIVATE
Variable supprimée dès que la routine dans laquelle elle est définie
prend fin. Les variables privées sont utilisées par défaut
dans Visual FoxPro et ne nécessitent aucun mot réservé
particulier pour être définies. Leur étendue peut néanmoins
être limitée à l'aide du mot réservé PRIVATE
s'il existe déjà une variable du même nom à un niveau
supérieur. PRIVATE ne crée pas de variable, contrairement à
LOCAL et PUBLIC qui créent les variables avec une valeur logique à
.F. (Faux).
Variables LOCALES - Commande LOCAL
Les variables locales et les tableaux locaux de variables peuvent uniquement
être utilisés et modifiés au sein de la procédure
ou de la fonction dans laquelle ils ont été créés.
Un programme de niveau supérieur ou inférieur n'y aura pas accès.
Une fois que la procédure ou la fonction qui les contient a terminé
son exécution, les variables et tableaux de variables locaux sont supprimés.
Les variables et tableaux créés à l'aide de LOCAL sont
initialisés à la valeur Faux (.F.). Il convient de déclarer
"Local" une variable ou un tableau avant qu'une valeur ne lui soit
affectée. Si une valeur à la variable ou au tableau est affectée
avant de l'avoir déclaré comme local à l'aide de LOCAL,
Visual FoxPro renvoie un message d'erreur.
Les variables locales peuvent être passées par référence.
La commande LOCAL ne doit pas être abrégée, (il y aurait
confusion avec la commande LOCATE).
Variables GLOBALES - Commande PUBLIC
Ces variables (variable publique) sont définies à l'aide du mot
réservé PUBLIC, elles sont accessibles à toutes les procédures
et fonctions, et pas seulement à celles dans lesquelles elle sont définies.
LPARAMETERS Affecte des données provenant d'un programme appelant à
des variables, et crée des variables ou tableaux locaux au sein d'un
programme, d'une procédure ou d'une fonction utilisateur appelés.
PARAMETERS permet de créer des variables ou tableaux privés.
Les bonnes règles de la programmation objet avec Visual FoxPro, et le
souci de la performance, recommandent d'éviter, autant que possible,
l'utilisation de variables publiques, et de privilégier leur remplacement
par les propriétés des objets.