Scopes (visibilité)
  Les règles de scope de Scriptol sont celles de la plupart des langages de programmation de haut niveau. Ce ne sont pas celles de Php et autres langages de scripts.

Il y a quatre niveaux de visibilité en Scriptol:
- global,
- celui d'une classe,
- le corps d'une fonction,
- et le corps d'une structure de contrôle.
 Les variables déclarées à l'intérieur d'un scope sont visibles dans les scopes contenus. Elles ne peuvent être redéclarées dans un scope contenu.
 Les classes constituent des espaces de visibilités propres. Ainsi, les variables déclarées au niveau global peuvent être utilisées dans les fonctions et le corps des structures de contrôle. Pas dans une classe.
Les variables déclarées dans le corps d'une classe, sont aussi visibles dans les méthodes de la classe.
Les variables déclarées dans le corps d'une fonction sont visibles dans les structures contenues dans la fonction et si elles sont déclarées dans une structure de contrôle, elles sont visibles dans les structures contenues.
On ne peut redéclarer une variable là ou elle reste visible. On ne peut la redéclarer que quand son scope est clos, dans des fonctions successives ou des structures de contrôles successives.

En-tête de structure ou de fonction

L'en-tête d'une fonction a le scope du corps de la fonction.
Les en-têtes des structures de contrôle (for) sont considérées comme appartenant au scope de la structure et les variables qui y sont déclarées sont détruites à la fin du bloc.

Exemples sur les scopes et l'en-tête de structure. for int i in 1..3
  print i
/for

print i     ` erreur, i n'existe plus hors du bloc for.
Affiche: > Error, "i" undeclared


Instruction "let"

 Le scope de l'instruction let qui termine une structure de contrôle while, est celui du corps de la structure.

Scope et Php

 En Php, une variable assignée ou utilisée dans une fonction est considérée interne à la fonction, même si elle existe au niveau global, sauf si elle est déclarée "global".
Puisque les règles de Scriptol et de Php sont différentes, l'opérateur "global" doit être ajouté aux déclarations dans de nombreux cas, mais ceci est géré entièrement par le compilateur, et vous n'avez pas à vous en soucier, sauf quand vous utilisez des variables Php externes. Dans ce dernier cas, elles doivent être importée pour que le compilateur les traite correctement. (voir import).

On reviendra sur les scopes dans le chapitre sur les classes.