Elles sont utilisées en général pour faciliter la réutilisation d'une valeur fréquemment rencontrée dans une page web, mais également dans de nombreuses autres situations (les boucles, les tableaux, etc.) : l'utilisation des variables est incontournable en PHP, mais également dans tout autre langage.
Syntaxe
Une variable peut être représentée par n'importe quel suite de caractères inclus dans les plages suivantes :
- a-z : tous les caractères minuscules
- A-Z : tous les caractères majuscules
- 127-255 : tous les caractères dont le code ASCI est inclus dans cette plage
De façon générale voici la liste des caractères réservés devant être précédés du signe "\" dans une chaîne de caractères :
| séquence | valeur |
| \n | Nouvelle ligne (linefeed, LF ou 0x0A en ASCII) |
| \r | Retour à la ligne(carriage return, CR ou 0x0D en ASCII) |
| \t | Tabulation horizontale (HT ou 0x09 en ASCII) |
| \\ | Antislash |
| \$ | Caractère $ |
| \" | Guillemet double |
| \[0-7]{1,3} | Une séquence de caractère qui permet de rechercher un nombre en notation octale. |
| \x[0-9A-Fa-f]{1,2} | Une séquence de caractère qui permet de rechercher un nombre en notation hexadécimale. |
Important : Une variable doit obligatoirement commencer par un caractère alphabétique ou un caractère souligné "_".
- Code: Tout sélectionner
<?
$1MaVariable =1 // est incorrect
?>
<?
$_MaVariable=1 // est correct
?>
Utilisation des variables dans une chaîne de caractères :
$var0="jean"
$var1="christophe"
La concaténation :
La concaténation peut s'effectuer par l'intermédiaire du point ".".
$result=$var0."-".$var1 // retourne jean-christophe
Mais également au sein même de la chaîne
$result="$var0-$var1" // retourne jean-christophe
La portée des variables
La portée des variables est primordiale à comprendre en PHP. Car outre le fait que des variables portant le même nom au sein d'un même programme peuvent avoir des portées différentes et donc des valeurs différentes, la déclaration des variables est implicite dans le langage PHP. PHP détermine automatiquement le type d'une variable, en fonction de son utilisation.
Ce qu'il faut savoir :
Une variable $nombre peut représenter à la fois un cookie, une variable session, une variable postée d'un formulaire ou une variable définie par l'utilisateur. Il est important de bien comprendre ce point, afin d'éviter toute confusion éventuelle de nommage.
Chaque variable utilisée dans une fonction est une variable à portée locale.
Exemple :
Erreur fréquente :
- Code: Tout sélectionner
<?
$a=1; // Variables à portée globale
$b=2;
function somme() {
// la fonction somme ne retourne pas le bon résultat
$result=$a+$b; // Variable à portée locale
return $result;
}
?>
1/ Correction de l'erreur : on passe les paramètres $a et $b à la fonction
- Code: Tout sélectionner
<?
$a=1; // Variables à portée globale
$b=2;
function somme($a,$b) {
// la fonction somme retourne le bon résultat
$result=$a+$b;
return $result;
}
?>
2/ Correction de l'erreur : On utilise le tableau GLOBALS
- Code: Tout sélectionner
<?
$a=1; // Variables à portée globale
$b=2;
function somme() {
// la fonction somme retourne le bon résultat
$result = $GLOBALS["a"] + $GLOBALS["b"]; // Variables à portée globale
return $result;
}
?>
Récupérer les variables postées d'un formulaire
Afin d'éviter toute confusion, il sera en général judicieux dans le cadre d'un programme complexe de ne pas récupérer la variable associée à un champ de formulaire par $Nom_du_champ (ce qui pourrait porter à confusion avec d'autres variables du même nom pouvant être un cookie, une variable session, etc.).
On préferera donc utiliser les tableaux associatifs globals $HTTP_POST_VARS (pour une méthode POST) ou $HTTP_GET_VARS (pour une méthode GET).
Exemple :
- Code: Tout sélectionner
<form action="post.php" method="POST">
<input type=text name="valeur1" value="">
</form>
La récupération de la valeur valeur1 :
On pourrait récupérer la valeur postée par $valeur1, mais il sera préférable d'utiliser :
$HTTP_POST_VARS["valeur1"] // on récupère le contenu du champ valeur1

