[Plan du site]
Vous êtes ici ---
> Le Site du Zéro
> Les tutoriels
> Officiels
> Site Web
> Un site dynamique avec PHP ! > Les bases de PHP > Les variables
> Lecture du tutoriel
Les variables
Attention, chapitre fondamental !
Les variables sont un élément indispensable dans tout langage de programmation, et en PHP on n'y échappe pas. Ce n'est pas un truc de programmeurs tordus, c'est au contraire pour nous simplifier la vie. Sans elles, vous n'iriez pas bien loin
Ce chapitre est un peu long, aussi n'hésitez pas à en lire seulement la moitié un jour, puis l'autre moitié un autre jour. Il ne faut pas le prendre à la légère, car vous allez y apprendre des choses vraiment importantes. Vous allez, vers la fin de ce chapitre, commencer à comprendre pourquoi PHP est si apprécié !
Déjà dans le mot, vous devez vous dire que c'est quelque chose qui change tout le temps. En effet, le propre d'une variable c'est de pouvoir changer. Mais qu'est-ce que c'est concrètement ?
Une variable, c'est une petite information stockée en mémoire
temporairement. Ca n'a pas une grande durée de vie. En PHP, la variable (l'information) existe tant que la page est en cours de génération. Dès que la page PHP est générée, toutes les variables sont supprimées de la mémoire car elles ne servent plus à rien.
Ce n'est donc pas un fichier qui reste stocké sur le disque dur mais une petite information temporaire.
C'est à vous de créer des variables. Vous en créez quand ça vous arrange.
Ce qu'il faut retenir, c'est qu'une variable est toujours constituée de 2 choses :
- Son nom : pour pouvoir la reconnaître, vous devez donner un nom à votre variable. Par exemple "age_du_visiteur".
- Sa valeur : c'est l'information qu'elle contient, qui peut changer. Par exemple "17 ans".
Ici, je vous ai donné l'exemple d'une variable appelée "age_du_visiteur" qui a pour valeur "17 ans".
On peut modifier quand on veut la valeur de cette variable, faire des opérations dessus etc etc... Et quand on en a besoin, on l'appelle (par son nom

), et elle nous dit gentiment la valeur qu'elle contient.
Par exemple vous pouvez demander à un moment :
- Hep ! Toi, la variable age_du_visiteur, que contiens-tu ?
- 17 ans.
- Merci !
Vous allez voir que ces petites bébêtes, même si elles peuvent vous sembler encore un peu floues, seront vraiment indispensables pour votre site en PHP.
Par exemple, vous pourrez retenir temporairement le nom du visiteur. Dans une variable "nom_du_visiteur", vous stockez son pseudo, par exemple "M@teo21". Dès que vous en avez besoin vous pouvez l'utiliser, par exemple pour afficher un message de bienvenue personnalisé : "Salut M@teo21 ! Bienvenue sur mon site !".
Vous vous souvenez comment on fait pour afficher du texte en PHP n'est-ce pas ?

La fonction "echo" que je vous ai fait apprendre dans le chapitre précédent va nous être très utile ici pour faire des expériences !
On va maintenant voir comment il faut faire pour utiliser des variables en PHP
On va dans un premier temps
affecter une valeur à une variable, et ensuite on affichera ce qu'elle contient. Vous allez mieux comprendre l'intérêt d'utiliser des variables.
Affecter une valeur à une variable
Ici, on va tout simplement créer une variable, et lui donner la valeur qu'on veut. Pour le fun
Par exemple, si on tapait ceci :
Code : PHP1
2
3 | <?php
$pseudo_du_visiteur = "Mateo21";
?>
|
Si on tapait ça, ça créerait une variable :
- dont le nom serait pseudo_du_visiteur
- dont la valeur serait Mateo21
Notez qu'on ne peut pas mettre d'espaces pour un nom de variable. A la place, utilisez un underscore _ (c'est le symbole sous le chiffre 8 de votre clavier).
Evitez aussi les accents, les cédilles et tout autre symbole pour le nom. PHP ne les apprécie pas trop... En revanche pour la valeur vous pouvez mettre ce que vous voulez
Il y a plusieurs nouveaux élements. D'abord, le symbole Dollar (
$) : il précède toujours le nom d'une variable. C'est comme un signe de reconnaissance si vous préférez : ça permet de dire à PHP "J'utilise une variable". Donc vous reconnaîtrez toujours qu'il y a une variable par la présence du symbole Dollar (
$).
Ensuite, il y a le signe Egal (
=) : celui-là c'est logique, c'est pour dire que $pseudo_du_visiteur est égal à...
A la suite, il y a la valeur de la variable, entre guillemets puisqu'il s'agit de texte.
Enfin, il y a l'inoubliable symbole point-virgule (
;), qui permet de terminer l'instruction.
Concrètement, qu'est-ce que le code précédent afficherait ?
Rien du tout

Eh oui, tant que vous n'utilisez pas "echo", rien ne s'affiche. Là, le serveur a juste créé la variable temporairement en mémoire, mais il n'a rien fait d'autre.
Maintenant, une variable n'est pas obligée de contenir du texte. On peut aussi y mettre des nombres ou des booléens !
Bouletquoi ?

Je vais vous expliquer

Retenez qu'on peut mettre 3 sortes de "données" différentes dans une variable : texte, nombres, ou booléens. Voici comment on les utilise :
- Le texte : ça je viens de vous le montrer. Pour mettre du texte dans une variable, on le place entre guillemets comme ceci :
Code : PHP1
2
3 | <?php
$pseudo_du_visiteur = "Mateo21";
?>
|
- Les nombres : la seule différence avec le texte, c'est qu'on ne met pas de guillemets. Regardez :
Code : PHP1
2
3 | <?php
$nombre_de_freres = 3;
?>
|
Ainsi, PHP comprend qu'il s'agit d'un nombre et non pas d'un texte. Donc la seule chose à retenir, c'est que si vous voulez stocker juste un nombre il ne faut pas mettre de guillemets 
- Les booléens : je suppose que la plupart d'entre vous savait déjà ce qu'étaient le texte et les nombres (du moins j'espère
).
Mais les booléens, c'est probablement quelque chose de nouveau pour vous. En fait, ça sert à exprimer si quelque chose est vrai (true en anglais), ou si c'est FAUX (false en anglais). Il n'y a que deux possibilités.
En PHP, il faut taper true ou false pour dire à une variable qu'elle vaut vrai ou qu'elle vaut faux. Pour ne pas confondre avec du texte, il ne faut pas mettre de guillemets (comme pour les nombres quoi). Exemple :
Code : PHP1
2
3
4 | <?php
$je_suis_un_zero = true;
$je_suis_bon_en_php = false;
?>
|
Ici, j'ai créé deux variables booléennes différentes (pour que vous voyiez bien les deux possibilités). $je_suis_un_zero vaut true (vrai), et $je_suis_bon_en_php vaut false (faux). Ca se comprend assez bien non ? 
Vous vous demandez certainement à quoi peuvent bien servir les booléens ? Ca, je ne peux pas vous le dire maintenant. Vous allez en voir l'utilité un peu plus loin, dans le chapitre sur les conditions.
C'est compris ? On peut mettres 3 types d'éléments dans une variable : texte, nombres et booléens.
Pour le texte, on le met entre guillemets.
Pour les nombres et les booléens, on ne met pas de guillemets.
Si vous avez retenu ça, vous savez ce qu'il faut. On peut passer à la suite
Afficher la valeur d'une variable
Allez, maintenant une petite expérience : on va utiliser la fonction echo avec des variables. C'est très simple à faire regardez :
Code : PHP1
2
3
4 | <?php
$pseudo_du_visiteur = "Mateo21";
echo "$pseudo_du_visiteur";
?>
|
Qu'est-ce que ça affiche ? Eh oui, c'est magnifique, c'est magique : ça écrit Mateo21 !

A vous de faire vos propres essais pour vérifier que ça marche ! Changez la valeur de la variable dans la première ligne, et ça affichera quelque chose de différent ! Une expérience tout bête en somme, mais que vous devez faire pour bien comprendre comment les variables fonctionnent.
Avec l'instruction echo, vous pouvez donc afficher le contenu d'une variable. Mais vous n'êtes pas obligés d'afficher uniquement la valeur de la variable !
Voilà un petit exemple qui peut être très utile :
Code : PHP1
2
3
4 | <?php
$pseudo_du_visiteur = "Mateo21";
echo "Bonjour $pseudo_du_visiteur !";
?>
|
Vous voyez, dans l'instruction echo on a écrit le texte qu'on voulait (comme on faisait dans le chapitre précédent), mais on a mis au milieu la variable ($pseudo_du_visiteur). Lorsque la page PHP sera générée, $pseudo_du_visiteur sera remplacé par ce qu'il contient.
Du coup, ça affichera :
Bonjour Mateo21 !
Faites vos essais, en écrivant le texte que vous voulez, en affichant au milieu la valeur de 1, 2, 3 variables... Cette technique (pas bien compliquée) sera très souvent réutilisée dans les chapitres qui suivent, alors apprenez à faire pareil que moi !
On va maintenant faire travailler votre ordinateur, vous allez voir qu'il encaisse les calculs sans broncher. Eh oui, PHP sait aussi faire des calculs !
Oh je vous rassure, on ne va pas faire des calculs tordus, juste des additions, des soustractions, des multiplications et des divisions. C'est pas trop dur pour vous j'espère ?
Bon, ici on ne va travailler que sur des variables qui contiennent des nombres.
Voici les signes à connaître pour faire les 4 opérations de base (vous les trouverez sur votre pavé numérique, à droite du clavier) :
| Symbole |
Signification |
| + |
Addition |
| - |
Soustraction |
| * |
Multiplication |
| / |
Division |
Après, ça coule de source pour vous en servir. Voici quelques exemples :
Code : PHP 1
2
3
4
5
6
7
8
9
10 | <?php
$nombre = 2 + 4; // $nombre prend la valeur 6
$nombre = 5 - 1; // $nombre prend la valeur 4
$nombre = 3 * 5; // $nombre prend la valeur 15
$nombre = 10 / 2; // $nombre prend la valeur 5
// Allez on rajoute un peu de difficulté
$nombre = 3 * 5 + 1; // $nombre prend la valeur 16
$nombre = (1 + 2) * 2; // $nombre prend la valeur 6
?>
|
Allez quoi, boudez pas, un peu de calcul mental ça n'a jamais fait de mal à personne

Vérifiez mes calculs, comme vous pouvez le voir il n'y a rien de bien compliqué dans tout ça.
Seulement, il ne faut pas avoir peur de "jongler" avec les variables.
Voici des calculs avec plusieurs variables :
Code : PHP1
2
3
4 | <?php
$nombre = 10;
$resultat = ($nombre + 5) * $nombre; // $resultat prend la valeur 150
?>
|
C'est de la pure logique, je ne peux rien vous dire de plus.
Si vous avez compris ces bouts de code, vous avez tout compris, et vous êtes un pro des variables
Un des aspects intéressants de PHP, c'est qu'on peut se transmettre des variables de page en page.
Vous allez voir que c'est rudement pratique, par exemple pour transmettre le nom du visiteur. En effet, je vous rappelle que les variables sont détruites une fois que la page PHP est générée. Alors comment récupérer leur valeur dans une autre page ?
Transmettre en modifiant l'adresse
Vous avez certainement eu le résultat sous vos yeux un bon nombre de fois. Vous ne vous êtes jamais demandés pourquoi certaines adresses était si longues ?
http://www.monsite.com/infos.php?jour= [...] =Informations
Elles sont là vos variables ! C'est comme ça qu'on fait pour les transmettre d'une page à une autre !
Comment ça marche ?
Eh bien c'est du pur HTML. Comme vous le savez, pour faire un lien vers une autre page on utilise la balise <a>. Par exemple :
Code : HTML1 | <a href="http://www.monsite.com/infos.php">Cliquez ici pour accéder aux infos !</a>
|
Eh bien, à la suite du infos.php, il faut écrire un point d'interrogation (
?). Ensuite, vous tapez le nom de la variable, un égal, puis sa valeur :
http://www.monsite.com/infos.php?jour=27
Cela va créer une variable un peu particulière : $_GET['jour'] qui aura pour valeur 27 !
Et si vous voulez créer d'autres variables, il vous suffit de les séparer par des
&. Attention, dans votre code HTML, je vous rappelle (au cas où vous ne le sauriez pas) qu'il ne faut pas écrire directement le symbole & (c'est interdit, même si ça "a l'air" de marcher). Il faut remplacer les & par le code HTML correspondant, à savoir &
Regardez sur cet exemple :
http://www.monsite.com/infos.php?jour=27&mois=07&annee=2003&titre=Informations
Tous les & seront transformés en symboles & par le navigateur du visiteur.
Ici, 4 variables seront créées. Cela correspondrait à faire les 4 instructions suivantes :
- $_GET['jour'] = 27;
- $_GET['mois'] = 07;
- $_GET['annee'] = 2003;
- $_GET['titre'] = "Informations";
Je reconnais que ces variables ont une forme un peu bizarre, mais ne vous arrêtez pas pour ça.
On va faire un petit exemple pour que vous voyiez ce que ça donne concrètement.
Pour faire ce test, on aura besoin de 2 pages :
- Celle qui contient le lien (<a href="...">)
- Et celle dans laquelle on va récupérer les variables.
Code : HTML 1
2
3
4
5
6
7
8
9
10
11 | <p>
Notez que cette page ne contient que du HTML.<br />
Voici 3 liens vers la page cible.php, avec des variables aux valeurs différentes :
</p>
<p>
<a href="cible.php?nom=Dupont&prenom=Michel">Lien vers cible.php?nom=Dupont&prenom=Michel</a><br />
<a href="cible.php?nom=Guichard&prenom=Patrick">Lien vers cible.php?nom=Guichard&prenom=Patrick</a><br />
<a href="cible.php?nom=Surret&prenom=Coralie">Lien vers cible.php?nom=Surret&prenom=Coralie</a>
</p>
|
Code : PHP1
2
3
4
5
6
7 | Bonjour !
Votre nom est <?php echo $_GET['nom']; ?> , et votre prénom est <?php echo $_GET['prenom']; ?>.
<p>Faites un autre essai, <a href="appel.php">cliquez ici</a> pour revenir à appel.php</p>
|
Essayez donc ça !
Ce bouton ouvre la page appel.php :
Alors, qu'en pensez-vous ? C'est plutôt sympa non ?

Vous êtes en train d'apercevoir pour la première fois un aspect vraiment génial de PHP : le code source de cible.php est tout petit, et pourtant la page affiche quelque chose de différent à chaque fois ! La page cible.php peut en effet afficher n'importe quoi, sans que vous ayez à changer son code !
Là surtout n'hésitez pas à faire vos propres tests pour vous familiariser avec cette transmission de variables
Transmettre en utilisant un formulaire
Il y a un autre moyen de transmettre des variables, lui aussi très pratique. Il s'agit d'utiliser un formulaire (vous savez, avec des zones de texte, des cases à cocher, des boutons etc etc...)
En fait, on dédiera un chapitre entier aux formulaires dans la partie III de ce cours de PHP (lol, quand je pense qu'on n'en est qu'à la partie I

). En effet, c'est assez vaste et il y a quelques trucs un peu compliqués.
Je n'ai nullement envie de vous embrouiller, on va simplement s'intéresser à l'aspect le plus simple, qui vous permettra déjà de faire quelque chose de pas mal du tout
L'aspect le plus simple, c'est la zone de texte :

Comme vous le savez, vous pouvez écrire n'importe quoi dedans. Notre objectif sera de récupérer ce que le visiteur a écrit.
On va fonctionner de la même manière que tout à l'heure, avec une page appel.php (qui contiendra la zone de texte) et une page cible.php (qui affichera ce que vous avez tapé dans la zone de texte).
Code : HTML 1
2
3
4
5
6
7
8
9
10 | <p>
Cette page, elle aussi, ne contient que du HTML.<br />
Veuillez taper votre prénom :
</p>
<form action="cible.php" method="post">
<p>
<input type="text" name="prenom" /> <input type="submit" value="Valider" />
</p>
</form>
|
Code : PHP1
2
3
4
5 | Bonjour !
Je sais comment tu t'appelles, hé hé. Tu t'appelles <?php echo $_POST['prenom']; ?> !
<p>Si tu veux changer de prénom, <a href="appel.php">clique ici</a> pour revenir à appel.php</p>
|
Quand on récupère les valeurs d'un formulaire, on utilise le préfixe $_POST['xxxx'].
Quand on récupère les valeurs depuis l'adresse (comme on a fait tout à l'heure), on utilise le préfixe $_GET['xxxx']
Essayez ça !
Là, vous pouvez vous amuser à l'infini à inventer n'importe quel nom (bon ok je reconnais qu'il y a mieux pour s'amuser

). Mais bon un peu de sérieux quand même, nous ce qui nous intéresse c'est "Comment que ça marche ce truc ?"
La page appel.php, c'est un formulaire. Si vous avez lu mon cours sur le (X)HTML, vous devriez savoir vous en servir.
Le seul truc à savoir, c'est que "action" indique la page à afficher (cible.php) lorsqu'on a cliqué sur le bouton, et que le nom de la zone de texte sera le nom de la variable créée. Ici, la balise est :
<input type="text" name="prenom" />
Ici le nom de la zone de texte est "prenom".
Dans la page cible.php, une variable $_POST['prenom'] sera créée, qui aura pour valeur ce que vous avez entré dans la zone de texte. C'est une variable un peu particulière, il n'est pas utile de s'y attarder pour le moment. Vous comprendrez comment ça marche un peu plus tard, en attendant grâce à ça vous pouvez faire des trucs sympas
Si vous ressentez de vilaines migraines, je vous préconise un peu d'aspirine

Ce Q.C.M. était beaucoup plus vicieux que les précédents, mais au moins ça vous aura fait réfléchir.
Si vous avez répondu juste à toutes les questions (ou presque), alors mes sincères félicitations : non seulement vous avez compris le chapitre, mais en plus vous avez un esprit logique, ce qui est très utile en PHP !
Si vous avez eu un peu de mal pour ce chapitre, n'hésitez pas à le relire dans quelques heures, ou demain, vous aurez alors certainement les idées plus claires.
A l'aide des connaissances que vous venez d'acquérir, vous êtes blindés pour les prochains chapitres (c'est du pipi de chat à côté). Vous allez commencer à comprendre l'intérêt de tout ce que je vous apprends, les exemples concrets et amusants sont pour bientôt