Comprendre les principaux types de valeurs en PHP
Objectif de la leçon
Continuer dans le même fichier index.php avec les variables déjà créées, comprendre qu’une valeur possède un type, découvrir progressivement string, int, float, bool et null, utiliser var_dump() comme outil temporaire d’observation et préparer la manipulation des valeurs avec les opérateurs dans la leçon suivante.
Explications
Avant de commencer
Dans la leçon précédente, nous avons créé nos premières variables PHP.
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>
Le dossier du fil rouge contient toujours notamment :
index.html
index.php
apropos.html
contact.html
ordinateur.jpg
styles.css
Nous avons appris qu’une variable permet d’associer un nom à une valeur.
Mais jusqu’à présent, nos deux variables contiennent le même genre de valeur :
du texte
PHP peut manipuler plusieurs types de valeurs.
Dans cette troisième leçon, nous allons répondre à quatre questions :
- Qu’est-ce qu’un type de valeur ?
- Quelle différence existe entre du texte, un nombre, une valeur vrai ou faux et une valeur nulle ?
- Comment PHP reconnaît-il le type d’une valeur ?
- Comment observer temporairement le type et la valeur d’une variable ?
À la fin de cette leçon, vous saurez reconnaître les principaux types simples que nous utiliserons dans la suite du cours, sans encore construire de conditions ni de calculs complexes.
1. Une variable possède une valeur, et cette valeur possède un type
Reprenons :
$nomSite = 'Mon premier site HTML';
La variable est :
$nomSite
Sa valeur est :
'Mon premier site HTML'
Cette valeur est du texte.
PHP classe ce type de valeur dans la catégorie :
string
Nous pouvons donc distinguer :
variable
= $nomSite
valeur
= 'Mon premier site HTML'
type
= string
2. Reprendre le type string
Vous avez déjà rencontré une chaîne de caractères dans la première leçon.
Nous allons maintenant donner son nom PHP précis :
string
Une valeur de type
string représente du texte.
Par exemple :
'Mon premier site HTML'
'Cette phrase a été générée par PHP.'
'Accueil'
Dans notre projet :
$nomSite
et :
$messageAccueil
contiennent donc actuellement des valeurs de type :
string
3. Les guillemets indiquent ici du texte
Comparez :
'3'
et :
3
La première écriture représente du texte.
La seconde représente un nombre entier.
Les deux valeurs peuvent sembler proches lorsque nous les lisons, mais PHP ne les classe pas dans le même type.
Cette différence deviendra importante lorsque nous commencerons à manipuler les valeurs.
4. Découvrir le type int
Un nombre entier est représenté par le type :
int
Le mot vient de :
integer
qui signifie entier.
Notre petit site possède trois pages principales :
Accueil
À propos
Contact
Nous pouvons donc ajouter une variable réelle au projet :
$nombrePages = 3;
Le début de
index.php peut devenir :
<?php
$nomSite = 'Mon premier site HTML';
$messageAccueil = 'Cette phrase a été générée par PHP.';
$nombrePages = 3;
?>
La valeur :
3
n’est pas entourée de guillemets.
Son type est ici :
int
5. Ne pas confondre '3' et 3
Comparez :
$nombreTexte = '3';
$nombrePages = 3;
Dans le premier cas :
'3'
est un
string.
Dans le second :
3
est un
int.
Nous ne conserverons pas
$nombreTexte dans le projet.
Cette comparaison sert uniquement à comprendre que le type dépend de la valeur réellement attribuée.
6. Découvrir le type float
PHP peut aussi représenter un nombre possédant une partie décimale.
Ce type est appelé :
float
Pour l’observer, utilisez temporairement :
$exempleDecimal = 2.5;
La valeur :
2.5
est ici un :
float
Cette variable sert uniquement à découvrir le type.
Elle sera supprimée avant la fin de la leçon car elle n’a pas de rôle réel dans le site.
7. Le point sépare la partie décimale dans le code
Dans le code PHP, nous écrivons :
2.5
et non :
2,5
Pour cette leçon, retenez :
3
= int
2.5
= float
Nous n’effectuons encore aucun calcul.
Nous apprenons d’abord à reconnaître les valeurs.
8. Découvrir le type bool
PHP possède également un type permettant de représenter deux états logiques :
true
false
Ce type s’appelle :
bool
Notre formulaire de contact n’est pas encore traité par PHP.
Nous pouvons donc ajouter :
$formulaireTraite = false;
La valeur :
false
décrit correctement l’état actuel du fil rouge.
Son type est :
bool
9. false et 'false' ne sont pas la même valeur
Comparez :
$formulaireTraite = false;
et :
$formulaireTraite = 'false';
Dans la première instruction :
false
est un booléen.
Dans la seconde :
'false'
est du texte.
Nous devons donc regarder la valeur elle-même et pas seulement le mot que nous lisons.
10. À quoi serviront les booléens plus tard ?
Les valeurs :
true
false
seront utiles lorsque nous apprendrons les conditions.
Nous pourrons par exemple représenter des questions comme :
le formulaire a-t-il été traité ?
une donnée est-elle valide ?
une opération a-t-elle réussi ?
Nous n’utilisons encore aucune condition.
Nous préparons seulement la notion qui sera nécessaire plus tard.
11. Découvrir null
PHP possède aussi une valeur particulière :
null
Elle représente l’absence de valeur.
À ce stade, aucun message de contact n’a encore été traité ou enregistré.
Nous pouvons donc écrire :
$dernierMessage = null;
Nous pouvons lire :
$dernierMessage
= aucune valeur pour le moment
12. null n’est pas une chaîne vide
Comparez :
$dernierMessage = null;
et :
$dernierMessage = '';
Dans le premier cas :
null
représente l’absence de valeur.
Dans le second :
''
est une chaîne de caractères vide.
Le résultat visible pourrait sembler vide dans les deux situations.
Mais le type et le sens ne sont pas les mêmes.
13. Plusieurs types dans le même bloc
Pour observer l’ensemble, nous pouvons temporairement avoir :
<?php
$nomSite = 'Mon premier site HTML';
$messageAccueil = 'Cette phrase a été générée par PHP.';
$nombrePages = 3;
$exempleDecimal = 2.5;
$formulaireTraite = false;
$dernierMessage = null;
?>
Nous pouvons maintenant reconnaître :
$nomSite
= string
$messageAccueil
= string
$nombrePages
= int
$exempleDecimal
= float
$formulaireTraite
= bool
$dernierMessage
= null
14. PHP détermine ici le type à partir de la valeur
Nous avons écrit :
$nomSite = 'Mon premier site HTML';
$nombrePages = 3;
Nous n’avons pas écrit le nom du type devant la variable.
Dans ces premières instructions, PHP détermine le type à partir de la valeur attribuée.
Nous découvrirons plus tard d’autres possibilités liées aux types.
Pour le moment, retenez simplement cette observation.
15. Une variable peut techniquement changer de type
PHP autorise par exemple :
$nombrePages = 3;
$nombrePages = 'trois';
La variable reçoit d’abord un entier puis une chaîne de caractères.
Nous éviterons de changer ainsi le sens d’une variable sans raison.
Même lorsqu’un langage autorise quelque chose, notre code doit rester compréhensible.
Dans notre projet :
$nombrePages
doit continuer à représenter un nombre de pages.
16. Découvrir var_dump()
Nous allons maintenant utiliser un outil temporaire pour observer une valeur.
PHP fournit :
var_dump()
Cette fonction affiche des informations sur une valeur, notamment son type et son contenu.
Nous l’utilisons uniquement comme outil d’observation dans cette leçon.
Nous étudierons les fonctions de manière complète plus tard.
17. Observer $nomSite
Après le bloc des variables, ajoutez temporairement :
<?php
var_dump($nomSite);
?>
Actualisez :
index.php
La sortie indique notamment que la valeur est de type :
string
et montre le texte associé.
Cette sortie est destinée au diagnostic.
Nous ne la conserverons pas dans la page finale.
18. Observer $nombrePages
Remplacez temporairement :
var_dump($nomSite);
par :
var_dump($nombrePages);
Vous devez obtenir une information indiquant :
int
avec la valeur :
3
19. Observer le float
Testez :
var_dump($exempleDecimal);
La sortie indique :
float
avec la valeur :
2.5
Nous vérifions simplement la nature de la valeur.
20. Observer le booléen
Testez :
var_dump($formulaireTraite);
La sortie indique :
bool
et la valeur :
false
Cette observation nous servira lorsque nous étudierons les conditions.
21. Observer null
Testez enfin :
var_dump($dernierMessage);
La sortie indique :
NULL
Nous retrouvons notre idée :
aucune valeur pour le moment
22. Retirer les sorties de diagnostic
Une fois les observations terminées, supprimez les blocs :
var_dump(...);
Nous ne voulons pas afficher des informations de diagnostic dans le contenu normal du site.
Retenez :
var_dump()
= outil temporaire pour inspecter une valeur
23. Retirer l’exemple décimal temporaire
Supprimez également :
$exempleDecimal = 2.5;
Cette variable nous a permis de comprendre
float.
Mais elle n’a pas de rôle réel dans le fil rouge.
Nous conservons uniquement les variables qui représentent une information compréhensible dans le projet.
24. État final des variables
À la fin de la leçon, 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.';
$nombrePages = 3;
$formulaireTraite = false;
$dernierMessage = null;
?>
Nous avons désormais plusieurs types de valeurs dans un état cohérent du projet.
25. Pourquoi conserver $nombrePages ?
Notre site possède trois pages principales :
Accueil
À propos
Contact
La variable :
$nombrePages = 3;
représente donc une donnée réelle du projet.
Nous ne l’affichons pas encore.
Elle pourra être utilisée lorsque nous apprendrons à manipuler les nombres.
26. Pourquoi conserver $formulaireTraite ?
Nous avons :
$formulaireTraite = false;
Cette valeur signifie :
le formulaire n’est pas encore traité par PHP
Elle correspond exactement à l’état actuel de :
contact.html
Plus tard, lorsque le traitement du formulaire sera étudié, cette idée pourra devenir réellement utile.
27. Pourquoi conserver $dernierMessage ?
La variable :
$dernierMessage = null;
représente :
aucun message disponible pour le moment
Nous n’avons encore ni traitement de formulaire ni base de données.
L’absence de valeur est donc cohérente avec le projet actuel.
28. echo et var_dump() n’ont pas le même rôle
Vous connaissez :
echo
pour produire une valeur dans la réponse.
Mais
echo ne nous indique pas clairement le type d’une variable.
Nous avons donc utilisé :
var_dump()
pour l’observation.
Retenez :
echo
= produire une valeur dans la réponse
var_dump
= inspecter temporairement une valeur et son type
29. Ne pas utiliser echo pour deviner un booléen
Si nous écrivions :
echo $formulaireTraite;
la valeur
false ne produirait pas un résultat très explicite pour l’apprentissage.
Pour observer le type, nous préférons :
var_dump($formulaireTraite);
puis nous retirons cette sortie de diagnostic.
Nous choisissons donc l’outil selon la question que nous voulons résoudre.
30. Préparer la prochaine étape
Nous savons maintenant reconnaître plusieurs types.
Mais nous ne savons pas encore réellement manipuler les valeurs.
Dans la prochaine leçon, nous allons commencer à utiliser des opérateurs simples.
Nous apprendrons notamment à :
- effectuer des opérations avec des nombres ;
- assembler du texte ;
- construire une expression ;
- stocker le résultat d’une expression dans une variable.
Nous n’introduirons toujours pas de conditions avant d’avoir expliqué les opérateurs nécessaires.
31. Ce que vous devez comprendre avant la prochaine leçon
Vous devez maintenant être capable d’expliquer :
- ce qu’est un type de valeur ;
- ce qu’est un
string ;
- ce qu’est un
int ;
- ce qu’est un
float ;
- ce qu’est un
bool ;
- ce que représente
null ;
- pourquoi
'3'et
3 n’ont pas le même type ;
- pourquoi
falseet
'false' ne sont pas équivalents ;
- pourquoi
null et une chaîne vide ne représentent pas la même chose ;
- comment PHP détermine ici le type d’après la valeur ;
- à quoi sert temporairement
var_dump() ;
- pourquoi nous retirons les sorties de diagnostic après les tests ;
- pourquoi nous conservons seulement les variables qui ont un rôle clair dans le projet.
Retenez surtout :
'texte'
= string
3
= int
2.5
= float
true ou false
= bool
null
= absence de valeur
Dans la prochaine leçon, nous garderons les variables du fil rouge et nous apprendrons à manipuler leurs valeurs avec les premiers opérateurs PHP.
Exemple commenté
Au début de :
index.php
nous pouvons maintenant conserver :
<?php
$nomSite = 'Mon premier site HTML';
$messageAccueil = 'Cette phrase a été générée par PHP.';
$nombrePages = 3;
$formulaireTraite = false;
$dernierMessage = null;
?>
Ces variables contiennent plusieurs types :
$nomSite
= string
$messageAccueil
= string
$nombrePages
= int
$formulaireTraite
= bool
$dernierMessage
= null
Pendant un test temporaire, nous pouvons vérifier une valeur avec :
var_dump($nombrePages);
puis supprimer cette sortie de diagnostic lorsque l’observation est terminée.
Exercice à réaliser
Continuez dans le même fichier :
index.php
1. Conserver les variables de la leçon précédente
Vérifiez que vous avez :
$nomSite = 'Mon premier site HTML';
$messageAccueil = 'Cette phrase a été générée par PHP.';
2. Ajouter un entier
Ajoutez :
$nombrePages = 3;
Expliquez pourquoi :
3
est un
intet non un
string.
3. Tester un float temporaire
Ajoutez temporairement :
$exempleDecimal = 2.5;
Retenez son type :
float
4. Ajouter un booléen
Ajoutez :
$formulaireTraite = false;
Expliquez pourquoi
falsen’est pas la même chose que
'false'.
5. Ajouter une valeur nulle
Ajoutez :
$dernierMessage = null;
Expliquez la différence entre
null et une chaîne vide.
6. Observer les types avec var_dump()
Testez successivement :
var_dump($nomSite);
var_dump($nombrePages);
var_dump($exempleDecimal);
var_dump($formulaireTraite);
var_dump($dernierMessage);
Effectuez les tests un par un afin de lire clairement les résultats.
7. Nettoyer les tests
Supprimez les appels à :
var_dump()
après l’observation.
Supprimez également :
$exempleDecimal = 2.5;
car cette variable n’a pas de rôle durable dans le projet.
8. Vérifier l’état final
Conservez :
<?php
$nomSite = 'Mon premier site HTML';
$messageAccueil = 'Cette phrase a été générée par PHP.';
$nombrePages = 3;
$formulaireTraite = false;
$dernierMessage = null;
?>
Vérifiez que la page d’accueil fonctionne toujours.
9. Expliquer ce que vous avez fait
Sans regarder la correction, expliquez avec vos propres mots :
1. la différence entre valeur et type ;
2. la différence entre
stringet
int ;
3. ce qu’est un
float ;
4. ce qu’est un
bool ;
5. ce que représente
null ;
6. à quoi sert
var_dump() ;
7. pourquoi
$exempleDecimal est supprimée après le test ;
8. quelles variables restent dans le projet et pourquoi.
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.';
$nombrePages = 3;
$formulaireTraite = false;
$dernierMessage = null;
?>
<!doctype html>
<html lang="fr">
Nous pouvons identifier :
$nomSite
= string
$messageAccueil
= string
$nombrePages
= int
$formulaireTraite
= bool
$dernierMessage
= null
La variable temporaire :
$exempleDecimal = 2.5;
nous a permis d’observer un :
float
mais elle est supprimée ensuite car elle n’a pas de rôle réel dans le projet.
Les appels à :
var_dump()
sont également retirés après les tests.
Ils servent au diagnostic et à l’apprentissage, pas au contenu normal de la page.
Les variables
$nomSiteet
$messageAccueilcontinuent à être utilisées avec
echo.
Dans la prochaine leçon, nous conserverons cet état et nous commencerons à manipuler les valeurs avec les opérateurs PHP.
À retenir
Dans cette leçon, nous avons découvert que chaque valeur manipulée par PHP possède un type.
Nous avons appris :
string
= texte
int
= nombre entier
float
= nombre avec une partie décimale
bool
= true ou false
null
= absence de valeur
Nous avons conservé dans le fil rouge :
$nomSite = 'Mon premier site HTML';
$messageAccueil = 'Cette phrase a été générée par PHP.';
$nombrePages = 3;
$formulaireTraite = false;
$dernierMessage = null;
Nous avons également découvert :
var_dump()
comme outil temporaire permettant d’observer une valeur et son type.
Les sorties de diagnostic ont ensuite été supprimées.
Nous avons enfin distingué :
'3'
≠
3
'false'
≠
false
''
≠
null
Dans la prochaine leçon, nous garderons les mêmes variables et nous apprendrons à manipuler les valeurs avec les premiers opérateurs PHP, toujours avant d’aborder les conditions.
Seuil de réussite, en pourcentage : 100 %. QCM obligatoire pour terminer le cours.