Manipuler les valeurs avec les premiers opérateurs PHP
Objectif de la leçon
Continuer dans le même fichier index.php avec les variables du fil rouge, comprendre ce qu’est une expression, utiliser les premiers opérateurs arithmétiques sur des nombres, assembler du texte avec l’opérateur de concaténation et stocker le résultat d’une expression dans une nouvelle variable avant de préparer l’étude des opérateurs de comparaison.
Explications
Avant de commencer
Dans la leçon précédente, nous avons découvert les principaux types de valeurs.
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.';
$nombrePages = 3;
$formulaireTraite = false;
$dernierMessage = null;
?>
Nous savons reconnaître :
string
int
float
bool
null
Nous avons également utilisé temporairement :
var_dump()
pour observer une valeur et son type.
Jusqu’à présent, nous avons surtout :
- créé des variables ;
- attribué des valeurs ;
- affiché certaines valeurs avec
echo ;
- observé leur type.
Nous allons maintenant commencer à manipuler ces valeurs.
Dans cette nouvelle leçon, qui ouvre un nouveau chapitre, nous allons répondre à quatre questions :
- Qu’est-ce qu’un opérateur ?
- Qu’est-ce qu’une expression ?
- Comment effectuer des opérations simples avec des nombres ?
- Comment assembler plusieurs morceaux de texte et plusieurs valeurs ?
À la fin de cette leçon, notre vraie page
index.php calculera le nombre de pages qu’il reste à faire évoluer vers PHP et produira un message construit à partir de plusieurs variables.
1. Qu’est-ce qu’un opérateur ?
Un opérateur est un symbole qui permet d’effectuer une opération sur une ou plusieurs valeurs.
Vous connaissez déjà :
=
Dans :
$nombrePages = 3;
le signe
= réalise une attribution.
Nous allons maintenant découvrir d’autres opérateurs.
Pour commencer, nous utiliserons :
+
-
*
/
pour des opérations numériques,
et :
.
pour assembler du texte.
2. Qu’est-ce qu’une expression ?
Une expression est une partie de code que PHP peut évaluer pour produire une valeur.
Par exemple :
3 - 1
est une expression.
PHP peut l’évaluer et produire :
2
Nous pouvons également utiliser des variables :
$nombrePages - $pagesConvertiesPhp
PHP prend les valeurs contenues dans les variables, effectue l’opération et produit un résultat.
Retenez :
expression
= code qui produit une valeur
3. Ajouter une variable réelle pour l’état du projet
Dans le fil rouge, nous avons trois pages principales :
Accueil
À propos
Contact
Nous avons commencé à faire évoluer :
index.html
vers :
index.php
Les deux autres pages restent encore :
apropos.html
contact.html
Nous pouvons donc ajouter :
$pagesConvertiesPhp = 1;
Le bloc devient :
<?php
$nomSite = 'Mon premier site HTML';
$messageAccueil = 'Cette phrase a été générée par PHP.';
$nombrePages = 3;
$pagesConvertiesPhp = 1;
$formulaireTraite = false;
$dernierMessage = null;
?>
Cette nouvelle variable représente une donnée réelle du projet.
4. Utiliser l’opérateur de soustraction
Nous voulons maintenant savoir combien de pages principales restent à faire évoluer vers PHP.
Nous avons :
$nombrePages = 3;
et :
$pagesConvertiesPhp = 1;
Nous pouvons écrire :
$pagesRestantes = $nombrePages - $pagesConvertiesPhp;
PHP évalue d’abord :
$nombrePages - $pagesConvertiesPhp
Avec nos valeurs actuelles :
3 - 1
produit :
2
Puis PHP attribue ce résultat à :
$pagesRestantes
5. Lire l’instruction étape par étape
Reprenons :
$pagesRestantes = $nombrePages - $pagesConvertiesPhp;
Nous pouvons la lire ainsi :
prendre la valeur de $nombrePages
soustraire la valeur de $pagesConvertiesPhp
attribuer le résultat à $pagesRestantes
À la fin :
$pagesRestantes
= 2
Son type est :
int
car le résultat est ici un nombre entier.
6. Vérifier temporairement le résultat
Pour vérifier notre calcul, nous pouvons utiliser brièvement :
var_dump($pagesRestantes);
La sortie doit indiquer :
int(2)
selon la présentation produite par PHP.
Supprimez ensuite cet appel à
var_dump().
Comme dans la leçon précédente, il sert uniquement à l’observation.
7. Découvrir l’opérateur +
L’opérateur :
+
permet notamment d’additionner des nombres.
Pour faire une expérience temporaire à partir d’une vraie variable, écrivez :
$testAddition = $nombrePages + 1;
Avec :
$nombrePages = 3;
PHP calcule :
3 + 1
et produit :
4
Cette variable sert uniquement à découvrir l’opérateur.
Nous la supprimerons ensuite car elle ne représente pas une donnée utile du projet.
8. Découvrir l’opérateur *
L’opérateur :
*
permet de multiplier des nombres.
Pour une expérience temporaire :
$testMultiplication = $nombrePages * 2;
PHP évalue :
3 * 2
et produit :
6
Nous n’avons pas besoin de conserver cette variable.
Le but est seulement de reconnaître l’opérateur et son fonctionnement.
9. Découvrir l’opérateur /
L’opérateur :
/
permet d’effectuer une division.
Testez temporairement :
$testDivision = $nombrePages / 2;
Avec :
3 / 2
PHP produit :
1.5
Cette fois, le résultat contient une partie décimale.
Nous retrouvons donc le type :
float
étudié dans la leçon précédente.
10. Les types et les opérateurs commencent à se rejoindre
Nous pouvons maintenant observer :
3 - 1
= 2
= int
3 / 2
= 1.5
= float
Les opérations peuvent donc produire des valeurs de types différents selon le résultat.
C’est une raison supplémentaire pour avoir étudié les types avant les opérateurs.
11. Supprimer les variables de test
Les variables :
$testAddition
$testMultiplication
$testDivision
étaient uniquement des expériences.
Supprimez-les après avoir vérifié leur résultat.
Nous conservons :
$pagesConvertiesPhp
et :
$pagesRestantes
car elles décrivent réellement l’état du fil rouge.
12. État numérique utile du projet
Le début de notre bloc peut maintenant contenir :
$nombrePages = 3;
$pagesConvertiesPhp = 1;
$pagesRestantes = $nombrePages - $pagesConvertiesPhp;
Nous pouvons expliquer chacune des valeurs :
$nombrePages
= nombre total de pages principales
$pagesConvertiesPhp
= nombre de pages ayant déjà une version PHP dans le fil rouge
$pagesRestantes
= résultat calculé
Nous commençons donc à produire une donnée à partir d’autres données.
13. PHP respecte un ordre de calcul
Dans une expression comme :
2 + 3 * 4
PHP n’effectue pas nécessairement les opérations simplement de gauche à droite.
Comme en mathématiques, certains opérateurs ont une priorité plus élevée que d’autres.
Ici, la multiplication est effectuée avant l’addition.
Nous n’allons pas apprendre toute la table de priorité des opérateurs dans cette leçon.
Pour les expressions plus complexes, nous utiliserons des parenthèses lorsque nous voulons rendre l’intention évidente.
14. Utiliser des parenthèses pour clarifier
Comparez :
2 + 3 * 4
et :
(2 + 3) * 4
Les parenthèses demandent ici de calculer :
2 + 3
avant la multiplication.
Pour débuter, retenez surtout :
si une expression devient difficile à lire,
utilisez des parenthèses pour rendre le calcul explicite
Dans notre fil rouge :
$pagesRestantes = $nombrePages - $pagesConvertiesPhp;
reste suffisamment simple et ne nécessite pas de parenthèses.
15. Les opérateurs numériques ne servent pas à assembler du texte
Nous avons :
$nomSite = 'Mon premier site HTML';
Nous ne pouvons pas utiliser :
+
comme si nous additionnions deux nombres pour assembler deux textes.
En PHP, l’opérateur utilisé pour concaténer des chaînes de caractères est :
.
Nous allons maintenant le découvrir.
16. Découvrir la concaténation
Concaténer signifie assembler plusieurs morceaux de texte ou plusieurs valeurs dans une même chaîne.
Par exemple :
'Bonjour ' . 'Michel'
produit :
Bonjour Michel
L’opérateur de concaténation est donc :
.
Retenez :
+
= addition numérique
.
= concaténation de chaînes
17. Construire un message avec le vrai nom du site
Nous pouvons utiliser :
$nomSite
dans une nouvelle chaîne.
Ajoutez temporairement :
$titrePresentation = 'Bienvenue sur ' . $nomSite;
PHP prend :
'Bienvenue sur '
puis la valeur de :
$nomSite
et produit :
Bienvenue sur Mon premier site HTML
Nous venons de construire une nouvelle valeur à partir d’un texte et d’une variable.
18. Les espaces font partie des chaînes
Regardez :
'Bienvenue sur ' . $nomSite
Il y a un espace après :
sur
dans la chaîne :
'Bienvenue sur '
Si nous écrivions :
'Bienvenue sur' . $nomSite
le résultat serait :
Bienvenue surMon premier site HTML
La concaténation ne rajoute pas automatiquement les espaces.
Nous devons donc les prévoir dans les chaînes lorsque le texte en a besoin.
19. Assembler du texte et un nombre
Nous voulons maintenant produire un message lié à l’état du projet.
Nous pouvons écrire :
$messageProgression = 'Pages restant à faire évoluer vers PHP : ' . $pagesRestantes;
La variable :
$pagesRestantes
contient :
2
PHP peut utiliser cette valeur dans la concaténation.
Le résultat produit est :
Pages restant à faire évoluer vers PHP : 2
20. Une expression peut mélanger plusieurs opérations
Nous avons d’abord calculé :
$pagesRestantes = $nombrePages - $pagesConvertiesPhp;
Puis nous utilisons le résultat dans :
$messageProgression = 'Pages restant à faire évoluer vers PHP : ' . $pagesRestantes;
Nous avons donc deux étapes claires :
1. calculer une valeur numérique
2. construire un texte avec cette valeur
Cette séparation rend le code plus facile à lire.
21. Faire évoluer le message de la page d’accueil
Dans la leçon 2, nous avions :
$messageAccueil = 'Cette phrase a été générée par PHP.';
Ce message nous a permis d’apprendre
echo puis les variables.
Nous pouvons maintenant le faire évoluer vers une phrase plus liée au projet.
Remplacez sa valeur par :
$messageAccueil = 'Le site possède ' . $nombrePages . ' pages principales et il reste ' . $pagesRestantes . ' pages à faire évoluer vers PHP.';
Nous construisons maintenant le message à partir de plusieurs valeurs.
22. Lire cette concaténation lentement
Reprenons :
$messageAccueil = 'Le site possède ' . $nombrePages . ' pages principales et il reste ' . $pagesRestantes . ' pages à faire évoluer vers PHP.';
Nous avons successivement :
'Le site possède '
$nombrePages
' pages principales et il reste '
$pagesRestantes
' pages à faire évoluer vers PHP.'
Les points :
.
assemblent toutes ces parties.
Avec les valeurs actuelles, PHP produit :
Le site possède 3 pages principales et il reste 2 pages à faire évoluer vers PHP.
23. echo ne change pas
Dans le contenu principal, nous conservons :
<p><?php echo $messageAccueil; ?></p>
Nous n’avons pas besoin de modifier l’instruction
echo.
La variable :
$messageAccueil
contient simplement une valeur plus élaborée qu’avant.
Nous retrouvons l’intérêt des variables :
la manière d’utiliser la variable peut rester stable
pendant que sa valeur évolue
24. Vérifier le résultat dans la vraie page
Enregistrez :
index.php
Puis actualisez :
http://localhost/mon-premier-site/index.php
Vous devez voir :
Le site possède 3 pages principales et il reste 2 pages à faire évoluer vers PHP.
Le reste de la page continue à fonctionner.
La navigation, les sections,
ordinateur.jpg, le tableau et
styles.css restent en place.
25. Conserver les autres variables du fil rouge
Nous gardons également :
$formulaireTraite = false;
$dernierMessage = null;
Nous ne les utilisons pas encore dans un calcul ou dans une condition.
C’est volontaire.
Elles seront utiles lorsque nous commencerons à prendre des décisions selon une valeur.
26. Une expression peut être stockée dans une variable
Nous avons vu deux exemples :
$pagesRestantes = $nombrePages - $pagesConvertiesPhp;
et :
$messageAccueil = 'Le site possède ' . $nombrePages . ' pages principales et il reste ' . $pagesRestantes . ' pages à faire évoluer vers PHP.';
Dans les deux cas, PHP évalue d’abord l’expression située à droite de :
=
Puis il attribue le résultat à la variable située à gauche.
Retenez :
variable = expression;
PHP évalue l’expression
puis stocke son résultat dans la variable
27. Ne pas compliquer les expressions inutilement
Nous pourrions écrire un message très long contenant plusieurs calculs directement au milieu de la concaténation.
Nous éviterons cette méthode lorsque le code devient difficile à lire.
Nous préférons :
$pagesRestantes = $nombrePages - $pagesConvertiesPhp;
puis utiliser :
$pagesRestantes
dans le message.
Nous donnons ainsi un nom au résultat intermédiaire.
Le code devient plus facile à expliquer.
28. Nettoyer les expériences temporaires
À la fin de la leçon, supprimez :
$testAddition
$testMultiplication
$testDivision
$titrePresentation
si vous les avez encore.
Ces variables servaient uniquement à observer les opérateurs.
Nous conservons seulement les valeurs utiles au fil rouge.
29. État final du bloc PHP
Le début de :
index.php
peut maintenant devenir :
<?php
$nomSite = 'Mon premier site HTML';
$nombrePages = 3;
$pagesConvertiesPhp = 1;
$pagesRestantes = $nombrePages - $pagesConvertiesPhp;
$messageAccueil = 'Le site possède ' . $nombrePages . ' pages principales et il reste ' . $pagesRestantes . ' pages à faire évoluer vers PHP.';
$formulaireTraite = false;
$dernierMessage = null;
?>
Nous avons maintenant :
- des valeurs ;
- des variables ;
- plusieurs types ;
- une opération numérique ;
- une concaténation ;
- une expression stockée dans une variable.
30. Ce que nous n’avons pas encore étudié
Nous savons maintenant produire des résultats.
Mais nous ne savons pas encore demander à PHP :
est-ce que deux valeurs sont égales ?
est-ce qu’un nombre est plus grand qu’un autre ?
est-ce qu’une valeur est différente d’une autre ?
Pour répondre à ces questions, nous allons découvrir :
les opérateurs de comparaison
dans la prochaine leçon.
31. Préparer la prochaine étape
Nous utiliserons des variables déjà présentes dans le fil rouge.
Par exemple :
$nombrePages
$pagesConvertiesPhp
$pagesRestantes
$formulaireTraite
Nous apprendrons à construire des expressions qui produisent :
true
ou :
false
Nous retrouverons donc directement le type :
bool
étudié dans la leçon précédente.
Nous n’écrirons les premières conditions qu’après avoir compris ces comparaisons.
32. Ce que vous devez comprendre avant la prochaine leçon
Vous devez maintenant être capable d’expliquer :
- ce qu’est un opérateur ;
- ce qu’est une expression ;
- le rôle de
+ ;
- le rôle de
- ;
- le rôle de
* ;
- le rôle de
/ ;
- pourquoi
3 / 2produit une valeur de type
float ;
- à quoi servent les parenthèses dans une expression ;
- la différence entre
+et
. ;
- ce que signifie concaténer du texte ;
- pourquoi les espaces doivent être prévus dans les chaînes ;
- comment stocker le résultat d’une expression dans une variable ;
- pourquoi nous avons créé
$pagesRestantes avant de construire le message ;
- pourquoi nous supprimons les variables d’expérience qui n’ont pas de rôle durable.
Retenez surtout :
$pagesRestantes = $nombrePages - $pagesConvertiesPhp;
= calculer une valeur
$messageAccueil = '...' . $pagesRestantes . '...';
= construire une chaîne par concaténation
Dans la prochaine leçon, nous garderons exactement ces variables et nous découvrirons les opérateurs de comparaison avant de commencer les conditions.
Exemple commenté
Au début de :
index.php
nous pouvons maintenant avoir :
<?php
$nomSite = 'Mon premier site HTML';
$nombrePages = 3;
$pagesConvertiesPhp = 1;
$pagesRestantes = $nombrePages - $pagesConvertiesPhp;
$messageAccueil = 'Le site possède ' . $nombrePages . ' pages principales et il reste ' . $pagesRestantes . ' pages à faire évoluer vers PHP.';
$formulaireTraite = false;
$dernierMessage = null;
?>
L’expression :
$nombrePages - $pagesConvertiesPhp
produit :
2
Puis la concaténation :
'Le site possède ' . $nombrePages . ' pages principales et il reste ' . $pagesRestantes . ' pages à faire évoluer vers PHP.'
produit :
Le site possède 3 pages principales et il reste 2 pages à faire évoluer vers PHP.
Le paragraphe déjà présent continue simplement à utiliser :
<p><?php echo $messageAccueil; ?></p>Exercice à réaliser
Continuez dans le même fichier :
index.php
1. Ajouter pagesConvertiesPhp
Ajoutez :
$pagesConvertiesPhp = 1;
Cette valeur correspond à
index.php, première page du fil rouge ayant maintenant une version PHP.
2. Calculer les pages restantes
Ajoutez :
$pagesRestantes = $nombrePages - $pagesConvertiesPhp;
Expliquez le rôle de chaque variable dans l’expression.
3. Vérifier temporairement
Testez :
var_dump($pagesRestantes);
Vérifiez que le résultat correspond à :
2
puis retirez
var_dump().
4. Tester les autres opérateurs numériques
Créez temporairement :
$testAddition = $nombrePages + 1;
$testMultiplication = $nombrePages * 2;
$testDivision = $nombrePages / 2;
Observez les résultats un par un.
Supprimez ensuite ces trois variables.
5. Tester la concaténation
Créez temporairement :
$titrePresentation = 'Bienvenue sur ' . $nomSite;
Vérifiez la valeur obtenue, puis supprimez cette variable de test.
6. Faire évoluer le vrai message d’accueil
Remplacez l’ancienne valeur de
$messageAccueil par :
$messageAccueil = 'Le site possède ' . $nombrePages . ' pages principales et il reste ' . $pagesRestantes . ' pages à faire évoluer vers PHP.';
7. Vérifier la page
Conservez :
<p><?php echo $messageAccueil; ?></p>
Actualisez la page et vérifiez le résultat.
8. Vérifier l’état final
Le bloc du haut doit conserver uniquement les variables utiles au fil rouge.
9. Expliquer ce que vous avez fait
Sans regarder la correction, expliquez avec vos propres mots :
1. ce qu’est un opérateur ;
2. ce qu’est une expression ;
3. comment
$pagesRestantes est calculée ;
4. la différence entre
+et
. ;
5. pourquoi nous supprimons les variables de test ;
6. comment
$messageAccueil est construit ;
7. quelle notion sera étudiée avant les conditions.
Correction et résultat attendu
À la fin de l’exercice, le début de :
index.php
peut être :
<?php
$nomSite = 'Mon premier site HTML';
$nombrePages = 3;
$pagesConvertiesPhp = 1;
$pagesRestantes = $nombrePages - $pagesConvertiesPhp;
$messageAccueil = 'Le site possède ' . $nombrePages . ' pages principales et il reste ' . $pagesRestantes . ' pages à faire évoluer vers PHP.';
$formulaireTraite = false;
$dernierMessage = null;
?>
La ligne :
$pagesRestantes = $nombrePages - $pagesConvertiesPhp;
utilise l’opérateur
-et stocke le résultat dans
$pagesRestantes.
Avec les valeurs actuelles :
3 - 1 = 2
La ligne :
$messageAccueil = 'Le site possède ' . $nombrePages . ' pages principales et il reste ' . $pagesRestantes . ' pages à faire évoluer vers PHP.';
utilise l’opérateur :
.
pour concaténer plusieurs morceaux de texte et plusieurs valeurs.
Le paragraphe :
<p><?php echo $messageAccueil; ?></p>
reste inchangé.
Les variables temporaires d’expérience sont supprimées.
Dans la prochaine leçon, nous garderons cet état du projet et nous apprendrons à comparer les valeurs avec les opérateurs de comparaison.
À retenir
Cette leçon ouvre un nouveau chapitre consacré à la manipulation des valeurs et à la préparation des décisions.
Nous avons découvert qu’un opérateur permet d’effectuer une opération sur des valeurs.
Nous avons utilisé :
+
-
*
/
pour des opérations numériques,
et :
.
pour la concaténation.
Nous avons aussi appris qu’une expression produit une valeur.
Dans le fil rouge :
$pagesRestantes = $nombrePages - $pagesConvertiesPhp;
calcule le nombre de pages principales restant à faire évoluer vers PHP.
Puis :
$messageAccueil = 'Le site possède ' . $nombrePages . ' pages principales et il reste ' . $pagesRestantes . ' pages à faire évoluer vers PHP.';
construit un texte à partir de plusieurs valeurs.
Nous avons conservé un code lisible en donnant un nom au résultat intermédiaire
$pagesRestantes et en supprimant les variables utilisées uniquement pour les expériences.
Dans la prochaine leçon, nous garderons les mêmes variables et nous découvrirons les opérateurs de comparaison. Ces comparaisons produiront des booléens
trueou
falseet prépareront directement les premières conditions PHP.
Seuil de réussite, en pourcentage : 100 %. QCM obligatoire pour terminer le cours.