Les variables en PHP

 Nommage 

En PHP, tout nom de variable doit commencer par le signe $ (dollar). Le nom ne peut pas contenir d'espace ni de caractères spéciaux (-, !, %, etc.) sauf le _ (trait de soulignement ou underscore). De plus, le caractère qui suit le $ peut être une lettre ou un trait de soulignement (underscore) mais jamais un chiffre. Les caractères accentués sont acceptés mais déconseillés pour des raisons de portabilité. Pour des raisons de lisibilité et de maintenance, il est judicieux d'utiliser des noms de variables évocateurs qui correspondent à leur utilisation dans le programme.

 Déclaration 

Contrairement à certains langages, il n'est pas nécessaire de déclarer formellement les variables en PHP. La déclaration se fait automatiquement lors de la première affectation de la variable. Toutefois, pour des raisons de lisibilité et de maintenance, il est judicieux, en début de script, de mentionner en commentaires la liste des variables et à quoi chacune de ces variable va servir dans le programme.

 Types 

Les variables sont faiblement typées en PHP et de manière dynamique. Vous pouvez commencer à utiliser une variable en tant que chaîne de caractères et qu'elle se transforme ensuite en entier ou booléen au fil des affectations. Il faut être attentif à cela.

N'utilisez cette "facilité" qu'en cas d'extrême nécessité, vous imaginez la confusion que cela peut introduire dans la compréhension du code à posteriori.

PHP se "coupe en quatre" pour vous facilité la tâche. Si la variable $fruits contient la chaîne de caractères "3 kilos" et la variable $prix contient la chaîne de caractères "2 euros", vous pouvez donner l'instruction $fruits * $prix; et vous obtiendrez le résultat 6. N'est-ce pas magnifique ? Évitez toutefois ce genre de gymnastique.

 Étendue 

On pourrait considérer une page PHP comme un programme.

Les variables déclarées dans une page sont globales à cette page, c'est-à-dire réutilisables avec leurs contenus à n'importe quel endroit de la page (attention si vous utilisez des fonctions dans votre page, voir les détails à ce sujet).

À l'entrée, cette page reçoit tous les champs des formulaires considérés comme des variables superglobales.

À la sortie de cette page, toutes ces variables et leurs contenus disparaissent.

Dans le chapitre précédent, nous avons envisagé le cas où une page HTML contenant un formulaire envoyait son contenu à une page PHP qui le traitait. Il peut être intéressant d'avoir, entre ces deux pages, une page de vérification/confirmation présentée à l'utilisateur afin qu'il puisse corriger ses erreurs éventuelles. Vous aurez donc un problème si vous travaillez sur trois pages :

  1. Une page de commande avec le remplissage du formulaire;
  2. Une page de confirmation pour que l'utilisateur vérifie sa commande;
  3. Une page de traitement de la commande qui enverra par exemple un courriel ou e-mail,...

Les variables et leurs contenus vont donc devoir être transmis deux fois de suite:

  • De la page de commande à la page de confirmation, cela ne pose guère de problèmes;
  • Le problème va se présenter entre la page de confirmation et la page de traitement.

On remédie à ce problème en réalisant des champs cachés (hidden) qui vont permettre ce second "saut" des variables de la page de confirmation à celle de traitement.

Dans votre page confirmation, le renvoi des champs cachés peut se faire de la façon suivante:

<form method="post" action="traitement.php">
<input type="hidden" name="prenom" value="<? echo $prenom; ?>">
<input type="hidden" name="nom" value="<? echo $nom; ?>">
...
</form>

Nous aurons l'occasion de détailler tout ceci dans l'exercice final de ce module PHP.

Bon travail.

Retour