Ce sont des réservoirs permettant de stocker des informations diverses réutilisables en plusieurs endroits du code
Déclaration : Pour choisir le nom d'une variable il faut :
Vérifier que ce nom n'est pas réservé (mot-clé ou constante du langage) ;
Qu'il soit composé de lettres, chiffres ou _ (caractère de soulignement) ;
Que son initiale soit une lettre ;
En PHP le faire précéder du symbole $.
Affectation : Pour remplir un réservoir avec une donnée, on utilise le symbole d'affectation = :
mavar_1 = "bonjour"
$mavar_1 = "bonjour";
met la chaîne "bonjour" dans la variable
mavar_2 = 250
$mavar_2 = 250;
met le nombre 250 dans la variable
mavar_3 = true
$mavar_3 = true;
met la valeur true dans la variable
mavar_4 = mavar_2
$mavar_4 = $mavar_2;
met dans la variable mavar_4 la valeur contenue dans la variable mavar_2
Types : Vous comprenez aisément qu'il ne faut pas réserver le même espace mémoire pour stocker un nombre et une longue chaine de caractères... et que le langage a besoin de connaître le genre d'informations qu'une variable va contenir... Chaque variable est donc typée à sa première affectation, c'est à dire que la nature des informations qu'on y stockera est fixée... Alors attention aux erreurs générées en cas de non-respect de cette règle !
Lecture : La donnée contenue dans un réservoir est lisible en invoquant simplement son nom
Par exemple pour l'afficher : <% = mavar_1 %> ou <? echo $mavar_1; ?>
Opérations : On peut, évidemment, construire le contenu d'une variable de manière plus subtile... Quelques exemples :
mavar_1 = "bon" & "jour"
$mavar_1 = "bon"."jour";
Concaténation de deux chaînes
mavar_2 = 50*5
$mavar_2 = 50*5;
Arithmétique + - * /
mavar_3 = (mavar_2 = 250)
$mavar_3 = ($mavar_2==250);
Comparaisons = (== en PHP) > >= < <= <> (!= en PHP)
Variables dynamiques : Dans certains cas, il peut être intéressant de stocker (ou de construire) le nom d'une variable dans une autre variable ... pour lire son contenu on procédera de la manière suivante :
<% truc_fr = "Bienvenue" truc_en = "Welcome" langue = "fr" execute "response.write truc_" & langue %>