Créer et utiliser ses premières variables PHP
Objectif de la leçon
Continuer dans le même fichier index.php, comprendre ce qu’est une variable, apprendre à la créer avec le signe $, lui attribuer une chaîne de caractères avec =, afficher sa valeur avec echo, modifier une valeur déjà attribuée et remplacer progressivement deux textes réels du site par des variables.
Explications
Avant de commencer
Dans la leçon précédente, vous avez créé :
index.php
à partir de la vraie page :
index.html
Vous avez également exécuté votre première instruction PHP :
echo 'Cette phrase a été générée par PHP.';
dans :
<p><?php echo 'Cette phrase a été générée par PHP.'; ?></p>
Le dossier du projet contient maintenant notamment :
index.html
index.php
apropos.html
contact.html
ordinateur.jpg
styles.css
Nous avons surtout retenu le fonctionnement suivant :
le navigateur demande la page
le serveur exécute PHP
PHP produit un résultat
le navigateur reçoit et affiche ce résultat
Pour le moment, le texte à afficher est écrit directement dans l’instruction :
'Cette phrase a été générée par PHP.'
Cette méthode fonctionne.
Mais elle devient rapidement peu pratique si nous voulons donner un nom à une valeur, la réutiliser ou la modifier plus facilement.
PHP permet de stocker une valeur dans :
une variable
Dans cette deuxième leçon, nous allons répondre à quatre questions :
- Qu’est-ce qu’une variable ?
- Comment créer une variable en PHP ?
- Comment afficher sa valeur avec
echo ?
- Que se passe-t-il lorsque nous attribuons une nouvelle valeur à une variable existante ?
À la fin de cette leçon, notre vraie page
index.php utilisera des variables pour le nom du site et pour le message PHP ajouté dans la première leçon.
1. Qu’est-ce qu’une variable ?
Une variable permet d’associer un nom à une valeur.
Au lieu d’écrire directement :
'Cette phrase a été générée par PHP.'
chaque fois que nous avons besoin de ce texte, nous pouvons lui donner un nom.
Par exemple :
$messageAccueil
Nous pourrons ensuite demander à PHP d’utiliser la valeur associée à ce nom.
Retenez pour commencer :
une variable
= un nom associé à une valeur
2. Créer notre première variable
Nous allons reprendre le texte déjà utilisé dans la première leçon.
Au tout début de :
index.php
avant :
<!doctype html>
ajoutez :
<?php
$messageAccueil = 'Cette phrase a été générée par PHP.';
?>
Le début du fichier devient donc :
<?php
$messageAccueil = 'Cette phrase a été générée par PHP.';
?>
<!doctype html>
<html lang="fr">
Nous allons maintenant décomposer cette instruction.
3. Comprendre le signe $
En PHP, le nom d’une variable commence par :
$
Dans :
$messageAccueil
le signe :
$
indique que nous manipulons une variable.
Le nom de notre variable est :
messageAccueil
et son écriture complète en PHP est :
$messageAccueil
4. Comprendre le nom messageAccueil
Nous avons choisi :
messageAccueil
parce que ce nom décrit la valeur que nous voulons stocker.
Nous évitons un nom vague comme :
$x
si nous pouvons utiliser un nom plus clair.
Nous prendrons donc l’habitude de choisir des noms qui permettent de comprendre le rôle de la variable.
Dans ce cours, nous utiliserons des noms sans espace et sans accent.
Lorsque plusieurs mots sont nécessaires, nous pouvons écrire par exemple :
messageAccueil
nomSite
titrePage
Le changement de majuscule rend les mots plus faciles à distinguer.
5. Quelques règles simples pour nommer une variable
Après le signe :
$
un nom de variable peut notamment contenir :
- des lettres ;
- des chiffres ;
- le caractère de soulignement
_.
Mais le premier caractère du nom ne doit pas être un chiffre.
Nous pouvons donc utiliser :
$messageAccueil
$nomSite
$message2
mais nous n’écrirons pas :
$2message
Nous éviterons également :
$message accueil
car un espace ne fait pas partie d’un nom de variable.
Pour débuter, retenez surtout :
un nom court mais compréhensible
sans espace
et qui décrit la valeur stockée
6. Les noms de variables sont sensibles à la casse
PHP distingue les majuscules et les minuscules dans les noms de variables.
Cela signifie que :
$messageAccueil
et :
$messageaccueil
ne représentent pas le même nom.
Nous devons donc conserver exactement la même écriture lorsque nous réutilisons une variable.
Dans le cours, nous utiliserons toujours :
$messageAccueil
avec un :
A
majuscule dans :
Accueil
7. Comprendre le signe =
Reprenons :
$messageAccueil = 'Cette phrase a été générée par PHP.';
Le signe :
=
sert ici à attribuer une valeur à la variable.
Nous pouvons lire cette instruction ainsi :
attribuer à $messageAccueil
la valeur
'Cette phrase a été générée par PHP.'
Le signe
= n’est donc pas utilisé ici pour poser une question du type :
est-ce que ces deux valeurs sont égales ?
Il réalise une attribution.
Nous étudierons les comparaisons plus tard, lorsque nous apprendrons les conditions.
8. La valeur se trouve à droite
Dans :
$messageAccueil = 'Cette phrase a été générée par PHP.';
la partie située à droite de :
=
est la valeur attribuée.
Ici :
'Cette phrase a été générée par PHP.'
est une chaîne de caractères.
Vous avez déjà rencontré cette notion dans la première leçon.
Pour le moment, nous continuons uniquement avec du texte.
Nous étudierons les autres types de valeurs dans la prochaine leçon.
9. Le point-virgule reste nécessaire
L’instruction complète se termine par :
;
Nous avons donc :
$messageAccueil = 'Cette phrase a été générée par PHP.';
Comme pour notre première instruction
echo, le point-virgule termine ici l’instruction PHP.
Nous continuons donc à prendre l’habitude de le vérifier.
10. Utiliser la variable avec echo
Dans la leçon précédente, nous avions :
<p><?php echo 'Cette phrase a été générée par PHP.'; ?></p>
Nous allons remplacer le texte écrit directement par notre variable.
Écrivez :
<p><?php echo $messageAccueil; ?></p>
Nous obtenons maintenant :
<?php
$messageAccueil = 'Cette phrase a été générée par PHP.';
?>
...
<p><?php echo $messageAccueil; ?></p>
Enregistrez puis actualisez :
http://localhost/mon-premier-site/index.php
Le résultat visible doit rester :
Cette phrase a été générée par PHP.
11. Ce qui a changé et ce qui n’a pas changé
Le navigateur affiche le même texte.
Mais notre code PHP fonctionne maintenant en deux étapes.
Première étape :
$messageAccueil = 'Cette phrase a été générée par PHP.';
Nous attribuons une valeur à la variable.
Deuxième étape :
echo $messageAccueil;
Nous demandons à PHP d’envoyer la valeur de cette variable dans la réponse.
Nous pouvons résumer :
attribuer une valeur
puis
utiliser cette valeur
12. Pourquoi définir la variable avant le HTML ?
Nous avons placé :
$messageAccueil = 'Cette phrase a été générée par PHP.';
au début du fichier.
Ainsi, lorsque PHP arrive plus tard à :
echo $messageAccueil;
la variable possède déjà une valeur.
L’ordre d’exécution compte.
PHP exécute les instructions dans l’ordre rencontré, sauf lorsqu’une structure du langage modifie volontairement ce déroulement.
Nous n’étudions pas encore ces structures.
Pour le moment, retenez :
la variable doit recevoir sa valeur
avant que nous essayions de l’utiliser
13. Modifier la valeur sans modifier echo
Changez temporairement :
$messageAccueil = 'Cette phrase a été générée par PHP.';
en :
$messageAccueil = 'Bienvenue dans mon apprentissage de PHP.';
Ne modifiez pas :
<p><?php echo $messageAccueil; ?></p>
Enregistrez puis actualisez la page.
Le texte visible devient :
Bienvenue dans mon apprentissage de PHP.
Nous avons modifié la valeur à un seul endroit.
La partie qui affiche la variable n’a pas changé.
14. Remettre la valeur du fil rouge
Après le test, remettez :
$messageAccueil = 'Cette phrase a été générée par PHP.';
Nous voulons conserver l’état du projet défini dans la première leçon.
Les expériences temporaires servent à comprendre une notion.
Elles ne doivent pas forcément rester dans la version finale.
15. Une variable peut recevoir une nouvelle valeur
Une variable n’est pas nécessairement figée pour toute l’exécution du script.
Imaginons :
<?php
$messageAccueil = 'Première valeur';
$messageAccueil = 'Deuxième valeur';
echo $messageAccueil;
?>
PHP exécute d’abord :
$messageAccueil = 'Première valeur';
puis :
$messageAccueil = 'Deuxième valeur';
Au moment de :
echo $messageAccueil;
la valeur courante est :
Deuxième valeur
La seconde attribution a remplacé la valeur précédente pour la suite de cette exécution.
16. Faire une expérience de réattribution
Ne modifiez pas encore le projet final.
Dans le bloc PHP du haut, testez temporairement :
<?php
$messageAccueil = 'Première valeur';
$messageAccueil = 'Deuxième valeur';
?>
Conservez plus bas :
<p><?php echo $messageAccueil; ?></p>
Actualisez la page.
Vous devez voir :
Deuxième valeur
Remettez ensuite :
<?php
$messageAccueil = 'Cette phrase a été générée par PHP.';
?>
17. Créer une deuxième variable à partir du vrai site
Nous allons maintenant utiliser une variable pour une valeur qui existait déjà avant PHP.
Dans l’en-tête du site, nous avons :
Mon premier site HTML
Nous allons stocker ce texte dans :
$nomSite
Au début de
index.php, complétez le bloc :
<?php
$nomSite = 'Mon premier site HTML';
$messageAccueil = 'Cette phrase a été générée par PHP.';
?>
Nous avons maintenant deux variables.
18. Afficher le nom du site avec PHP
Dans l’en-tête de :
index.php
repérez :
<p class="nom-site">Mon premier site HTML</p>
Remplacez-le par :
<p class="nom-site"><?php echo $nomSite; ?></p>
Enregistrez puis actualisez la page.
Le texte visible doit toujours être :
Mon premier site HTML
La classe :
nom-site
reste présente.
La présentation CSS reste donc la même.
19. HTML, CSS et PHP travaillent maintenant ensemble
Regardons :
<p class="nom-site"><?php echo $nomSite; ?></p>
Le rôle de chacun est maintenant visible.
p
et :
class="nom-site"
appartiennent au HTML.
La classe est utilisée par CSS pour la présentation.
La partie :
<?php echo $nomSite; ?>
demande à PHP de produire le texte.
Nous retrouvons donc :
HTML
= structure
CSS
= présentation
PHP
= valeur produite côté serveur
Les trois technologies travaillent ensemble sans se remplacer.
20. La classe CSS ne change pas
Dans
styles.css, nous avons déjà une règle :
.nom-site {
color: #4c1d95;
font-weight: bold;
}
Nous n’avons aucune raison de la modifier.
Le navigateur reçoit toujours un paragraphe avec :
class="nom-site"
CSS continue donc à appliquer la même présentation.
Le fait que le texte soit produit par PHP ne change pas le fonctionnement du sélecteur CSS.
21. Vérifier le code source reçu
Affichez de nouveau le code source de :
index.php
Vous devez retrouver un résultat de ce type :
<p class="nom-site">Mon premier site HTML</p>
Vous ne devez pas recevoir :
$nomSite
comme code PHP à exécuter dans le navigateur.
Le serveur a déjà remplacé l’utilisation de la variable par sa valeur dans la réponse produite.
22. Deux variables, deux rôles
Notre bloc contient maintenant :
<?php
$nomSite = 'Mon premier site HTML';
$messageAccueil = 'Cette phrase a été générée par PHP.';
?>
La première variable représente :
le nom du site
La deuxième représente :
le message PHP de la page d’accueil
Nous n’utilisons pas une variable unique pour stocker des informations différentes.
Chaque nom doit nous aider à comprendre la valeur qu’il représente.
23. Éviter de changer le sens d’une variable sans raison
Nous éviterons par exemple :
$nomSite = 'Mon premier site HTML';
$nomSite = 'Cette phrase a été générée par PHP.';
PHP accepterait une nouvelle attribution.
Mais le nom :
nomSite
ne correspondrait plus au rôle de la valeur.
Une variable doit rester compréhensible pour la personne qui lit le code.
Nous ne cherchons pas seulement un code qui fonctionne.
Nous voulons un code que nous pouvons relire et expliquer.
24. Ne pas créer une variable pour chaque mot
Maintenant que vous connaissez les variables, vous pourriez être tenté d’écrire :
$mot1 = 'Mon';
$mot2 = 'premier';
$mot3 = 'site';
sans besoin particulier.
Ce serait inutile dans notre projet.
Nous créons une variable lorsqu’elle représente une valeur qui possède un rôle compréhensible dans notre programme.
Pour cette leçon :
$nomSite
et :
$messageAccueil
répondent à ce besoin.
25. Ne pas transformer tout le HTML en echo
Nous pourrions essayer d’écrire toute la page ainsi :
echo '<header>...';
puis :
echo '<main>...';
et continuer de la même manière.
Nous ne le ferons pas.
Notre HTML est déjà clair et correctement structuré.
Nous utiliserons PHP seulement lorsqu’une valeur ou une décision doit être dynamique.
Cela rend la page plus facile à lire.
26. Une variable existe pendant l’exécution de la page
Lorsque le serveur traite :
index.php
il exécute le script pour produire la réponse.
Les variables que nous créons appartiennent à cette exécution.
Lorsque nous actualisons la page, une nouvelle exécution a lieu.
Pour le moment, nous ne conservons aucune donnée entre deux requêtes.
Les mécanismes de persistance seront étudiés beaucoup plus tard.
27. Nous utilisons encore uniquement du texte
Nos deux variables contiennent :
'Mon premier site HTML'
et :
'Cette phrase a été générée par PHP.'
Ce sont deux chaînes de caractères.
PHP peut également manipuler d’autres types de valeurs.
Par exemple :
- des nombres entiers ;
- des nombres avec une partie décimale ;
- des valeurs vrai ou faux ;
- l’absence de valeur représentée par
null ;
- des collections de valeurs.
Nous n’allons pas utiliser toutes ces notions maintenant.
Elles seront le sujet de la prochaine leçon.
28. Vérifier l’état final de index.php
Au début du fichier, vous devez pouvoir retrouver :
<?php
$nomSite = 'Mon premier site HTML';
$messageAccueil = 'Cette phrase a été générée par PHP.';
?>
Dans l’en-tête :
<p class="nom-site"><?php echo $nomSite; ?></p>
Et dans le contenu principal :
<p><?php echo $messageAccueil; ?></p>
Le reste de la vraie page d’accueil continue à fonctionner.
La navigation, les sections, l’image, le tableau et la feuille CSS restent en place.
29. Vérifier qu’aucun autre fichier n’a encore besoin d’être modifié
Nous travaillons pour le moment uniquement dans :
index.php
Les fichiers :
apropos.html
contact.html
restent inchangés.
C’est volontaire.
Nous apprendrons d’abord les bases de PHP sur une seule page avant de transformer progressivement le reste du site.
Nous évitons ainsi de multiplier les changements avant de comprendre les notions utilisées.
30. Préparer la prochaine étape
Nous savons maintenant :
- créer une variable ;
- lui attribuer une valeur ;
- afficher cette valeur ;
- lui attribuer une nouvelle valeur ;
- choisir un nom qui décrit son rôle.
Mais toutes nos variables contiennent encore le même type de valeur :
du texte
Dans la prochaine leçon, nous allons découvrir que PHP distingue plusieurs types de valeurs.
Nous commencerons notamment par :
string
int
float
bool
null
Nous verrons ce que ces types représentent et comment les reconnaître sans encore construire de conditions ou de calculs complexes.
31. Ce que vous devez comprendre avant la prochaine leçon
Vous devez maintenant être capable d’expliquer :
- ce qu’est une variable ;
- pourquoi son nom commence par
$ ;
- le rôle du nom
messageAccueil ;
- pourquoi nous choisissons des noms compréhensibles ;
- le rôle de
= dans une attribution ;
- où se trouve la valeur attribuée ;
- pourquoi le point-virgule est présent ;
- comment afficher une variable avec
echo ;
- pourquoi la variable doit recevoir une valeur avant son utilisation ;
- ce qu’il se passe lorsqu’une nouvelle valeur est attribuée à la même variable ;
- pourquoi
$nomSiteet
$messageAccueil ont des rôles différents ;
- pourquoi nous ne transformons pas tout le HTML en instructions
echo ;
- pourquoi CSS continue à fonctionner normalement sur le HTML produit par PHP.
Retenez surtout :
$nomVariable = valeur;
= attribuer une valeur à une variable
echo $nomVariable;
= envoyer la valeur de cette variable dans la sortie
Dans la prochaine leçon, nous garderons les mêmes variables et nous découvrirons les principaux types de valeurs en PHP.
Exemple commenté
Au début de :
index.php
nous pouvons maintenant avoir :
<?php
$nomSite = 'Mon premier site HTML';
$messageAccueil = 'Cette phrase a été générée par PHP.';
?>
Dans l’en-tête :
<p class="nom-site"><?php echo $nomSite; ?></p>
Et dans le contenu principal :
<p><?php echo $messageAccueil; ?></p>
La variable :
$nomSite
contient le nom du site.
La variable :
$messageAccueil
contient le message produit dans la page d’accueil.
Le navigateur reçoit les valeurs produites par PHP dans une structure HTML qui continue à être présentée par
styles.css.
Exercice à réaliser
Continuez dans le même fichier :
index.php
1. Créer la variable messageAccueil
Au début du fichier, avant
<!doctype html>, ajoutez :
<?php
$messageAccueil = 'Cette phrase a été générée par PHP.';
?>
2. Utiliser la variable
Remplacez :
<p><?php echo 'Cette phrase a été générée par PHP.'; ?></p>
par :
<p><?php echo $messageAccueil; ?></p>
Enregistrez puis actualisez la page.
Le résultat visible doit rester identique.
3. Modifier temporairement la valeur
Remplacez la valeur par :
'Bienvenue dans mon apprentissage de PHP.'
Actualisez la page.
Remettez ensuite :
'Cette phrase a été générée par PHP.'
4. Tester une réattribution
Testez temporairement :
$messageAccueil = 'Première valeur';
$messageAccueil = 'Deuxième valeur';
Vérifiez que :
echo $messageAccueil;
affiche la deuxième valeur.
Remettez ensuite la valeur normale.
5. Créer nomSite
Complétez le bloc du haut :
<?php
$nomSite = 'Mon premier site HTML';
$messageAccueil = 'Cette phrase a été générée par PHP.';
?>
6. Utiliser nomSite dans le vrai en-tête
Remplacez :
<p class="nom-site">Mon premier site HTML</p>
par :
<p class="nom-site"><?php echo $nomSite; ?></p>
Enregistrez puis actualisez.
7. Vérifier le code source reçu
Vérifiez que le navigateur reçoit :
Mon premier site HTML
et non le nom de variable
$nomSite comme code à exécuter.
8. Vérifier les autres fichiers
Ne modifiez pas encore :
apropos.html
contact.html
Nous continuerons d’abord l’apprentissage sur
index.php.
9. Expliquer ce que vous avez fait
Sans regarder la correction, expliquez avec vos propres mots :
1. ce qu’est une variable ;
2. pourquoi son nom commence par
$ ;
3. ce que fait le signe
= ;
4. comment
echo utilise une variable ;
5. ce qu’il se passe lorsqu’une variable reçoit une nouvelle valeur ;
6. pourquoi nous utilisons deux variables différentes pour le nom du site et le message ;
7. pourquoi HTML et CSS continuent à jouer leur rôle.
Correction et résultat attendu
À la fin de l’exercice, le début de :
index.php
peut être :
<?php
$nomSite = 'Mon premier site HTML';
$messageAccueil = 'Cette phrase a été générée par PHP.';
?>
<!doctype html>
<html lang="fr">
Dans l’en-tête :
<p class="nom-site"><?php echo $nomSite; ?></p>
Et dans le contenu principal :
<p><?php echo $messageAccueil; ?></p>
La ligne :
$nomSite = 'Mon premier site HTML';
attribue une chaîne de caractères à la variable
$nomSite.
La ligne :
$messageAccueil = 'Cette phrase a été générée par PHP.';
attribue une autre chaîne de caractères à
$messageAccueil.
Les instructions :
echo $nomSite;
et :
echo $messageAccueil;
envoient leurs valeurs dans la sortie produite par PHP.
Le HTML conserve la structure.
La classe
nom-site reste en place.
La feuille
styles.css continue donc à appliquer la même présentation.
Les fichiers
apropos.htmlet
contact.html restent inchangés pour le moment.
Dans la prochaine leçon, nous garderons ces variables et nous étudierons les principaux types de valeurs que PHP peut manipuler.
À retenir
Dans cette leçon, nous avons créé nos premières variables PHP.
Une variable permet d’associer un nom à une valeur.
Nous avons écrit :
$nomSite = 'Mon premier site HTML';
$messageAccueil = 'Cette phrase a été générée par PHP.';
Le signe :
$
indique une variable.
Le signe :
=
attribue une valeur.
Le point-virgule termine ici l’instruction.
Nous avons ensuite utilisé :
echo $nomSite;
et :
echo $messageAccueil;
pour envoyer les valeurs dans la réponse produite.
Nous avons également observé qu’une variable peut recevoir une nouvelle valeur et que l’ordre d’exécution compte.
Enfin, nous avons intégré
$nomSitedans le vrai en-tête sans modifier la classe CSS
nom-site.
Le fil rouge reste donc intact :
HTML
= structure
CSS
= présentation
PHP
= valeurs et logique côté serveur
Dans la prochaine leçon, nous garderons ces mêmes variables et nous découvrirons les principaux types de valeurs : texte, nombres, booléens et valeur nulle.
Seuil de réussite, en pourcentage : 100 %. QCM obligatoire pour terminer le cours.