PhpBB Lab Académie

Rechercher dans ce cours

Cours PHP : Apprendre le PHP : cours gratuit pour débutants

Auteur : phpBB-Lab. Date de cette version : lun. 21 sept. 2026 02:19.

Prendre ses premières décisions avec if et else

Objectif de la leçon

Continuer dans le même fichier index.php avec les booléens préparés dans la leçon précédente, comprendre le rôle d’une condition, utiliser if pour exécuter un bloc lorsque sa condition est vraie, ajouter else pour prévoir un second chemin lorsque la condition est fausse et produire un vrai message dynamique lié à l’état de conversion du site.

Explications

Avant de commencer

Dans la leçon précédente, nous avons appris à comparer des valeurs.

Le dossier du fil rouge contient toujours notamment :

index.html
index.php
apropos.html
contact.html
ordinateur.jpg
styles.css



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.';

$progressionCommencee = $pagesConvertiesPhp > 0;
$conversionTerminee = $pagesRestantes === 0;

$formulaireTraite = false;
$formulaireEnAttente = $formulaireTraite === false;

$dernierMessage = null;
$aucunMessage = $dernierMessage === null;
?>



Nous savons maintenant produire des booléens :

true

false



Mais nous ne les utilisons pas encore pour choisir ce que PHP doit faire.

C’est précisément le rôle d’une condition.

Dans cette leçon, nous allons répondre à quatre questions :

- Qu’est-ce qu’une condition ?
- Comment utiliser

if

?
- Que se passe-t-il lorsque la condition est fausse ?
- Comment utiliser

else

pour prévoir un second chemin ?

À la fin de cette leçon, PHP choisira lui-même un message différent selon que la conversion du petit site vers PHP est terminée ou encore en cours.

1. Qu’est-ce qu’une condition ?

Une condition permet à un programme de choisir s’il doit exécuter un bloc de code.

Nous pouvons représenter l’idée ainsi :

si une condition est vraie,
exécuter un bloc

sinon,
ne pas exécuter ce bloc



En PHP, le mot utilisé pour :

si



est :

if



2. Reprendre le booléen conversionTerminee

Nous avons déjà :

$conversionTerminee = $pagesRestantes === 0;



Avec l’état actuel du projet :

$pagesRestantes = 2;



La comparaison :

2 === 0



produit :

false



Nous pouvons donc utiliser directement :

$conversionTerminee



comme condition.

3. Écrire notre premier if

Pour commencer, nous allons faire un test temporaire.

Ajoutez :

if ($conversionTerminee)
{
    echo 'La conversion PHP du site est terminée.';
}



Nous allons maintenant décomposer cette structure.

4. Comprendre le mot if

Le mot :

if



signifie :

si



Nous pouvons donc lire :

if ($conversionTerminee)



ainsi :

si $conversionTerminee est vraie



PHP examine la valeur placée entre parenthèses.

5. Comprendre les parenthèses

Dans :

if ($conversionTerminee)



les parenthèses contiennent la condition à vérifier.

Ici, cette condition est déjà un booléen :

$conversionTerminee



Il vaut actuellement :

false



Le bloc associé au

if

ne sera donc pas exécuté.

6. Comprendre les accolades

Après la condition, nous avons :

{
    echo 'La conversion PHP du site est terminée.';
}



Les accolades délimitent le bloc de code associé au

if

.

Nous pouvons lire :

si la condition est vraie,
exécuter tout ce qui se trouve entre les accolades



Même lorsqu’un bloc ne contient qu’une seule instruction, nous utiliserons les accolades dans ce cours.

Elles rendent la structure plus claire.

7. Pourquoi aucun message n’apparaît-il ?

Notre condition vaut :

false



PHP n’exécute donc pas :

echo 'La conversion PHP du site est terminée.';



C’est le comportement attendu.

Nous venons de voir qu’un

if

peut empêcher l’exécution d’un bloc.

8. Faire un test temporaire avec true

Pour vérifier le mécanisme, remplacez temporairement :

$conversionTerminee = false;



par une variable de test :

$testCondition = true;



Puis utilisez :

if ($testCondition)
{
    echo 'Le bloc a été exécuté.';
}



Cette fois, le message apparaît.

Supprimez ensuite :

$testCondition



et ce test temporaire.

Nous revenons au vrai booléen du projet.

9. Ne pas modifier conversionTerminee pour forcer le résultat

Nous pourrions changer artificiellement :

$conversionTerminee



en :

true



Mais ce serait incohérent avec l’état réel du projet.

Nous conservons :

$conversionTerminee = $pagesRestantes === 0;



Le booléen doit continuer à être calculé à partir des vraies données du fil rouge.

10. if peut aussi utiliser une comparaison directement

Nous pourrions écrire :

if ($pagesRestantes === 0)
{
    echo 'La conversion PHP du site est terminée.';
}



Cette écriture fonctionne.

Mais nous avons déjà donné un nom clair au résultat :

$conversionTerminee



Nous préférons donc :

if ($conversionTerminee)
{
    ...
}



Le code est plus facile à lire.

11. Une condition vraie exécute le bloc

Imaginons que, plus tard, les trois pages soient devenues des pages PHP.

Nous aurions :

$pagesConvertiesPhp = 3;



Donc :

$pagesRestantes = 3 - 3;



ce qui produit :

0



Puis :

$conversionTerminee = $pagesRestantes === 0;



produirait :

true



Le bloc du

if

serait alors exécuté.

12. Le problème du if seul

Avec notre état actuel, la conversion n’est pas terminée.

Le

if

seul n’affiche donc rien.

Mais nous voulons pouvoir produire un message dans les deux situations :

conversion terminée

ou

conversion encore en cours



Pour cela, nous allons ajouter :

else



13. Découvrir else

Le mot :

else



signifie ici :

sinon



Nous pouvons donc écrire :

if ($conversionTerminee)
{
    echo 'La conversion PHP du site est terminée.';
}
else
{
    echo 'La conversion PHP du site est encore en cours.';
}



Nous avons maintenant deux chemins possibles.

14. Lire if et else en français

Nous pouvons lire la structure ainsi :

si $conversionTerminee est vraie,
afficher le message de fin

sinon,
afficher le message indiquant que la conversion continue



Un seul des deux blocs sera exécuté.

15. Ce qui se passe avec l’état actuel

Nous avons :

$conversionTerminee = false;



PHP ignore donc le bloc :

if



et exécute le bloc :

else



Le message produit est :

La conversion PHP du site est encore en cours.



16. Ne pas afficher le message directement depuis le bloc final

Le test avec

echo

nous a permis de comprendre le mécanisme.

Mais dans notre projet, nous allons conserver une séparation simple :

PHP choisit la valeur du message

HTML affiche le message



Nous allons donc stocker le résultat dans une variable.

17. Créer messageConversion

Remplacez le test précédent par :

if ($conversionTerminee)
{
    $messageConversion = 'La conversion PHP du site est terminée.';
}
else
{
    $messageConversion = 'La conversion PHP du site est encore en cours.';
}



Nous n’affichons rien dans les deux blocs.

Nous attribuons simplement une valeur à :

$messageConversion



18. Une seule variable, deux valeurs possibles

Si :

$conversionTerminee



vaut :

true



alors :

$messageConversion



reçoit :

'La conversion PHP du site est terminée.'



Sinon, elle reçoit :

'La conversion PHP du site est encore en cours.'



Dans les deux cas, la variable possède une valeur après la condition.

19. Utiliser les données déjà calculées

Le message du bloc

else

peut être plus utile.

Nous pouvons écrire :

if ($conversionTerminee)
{
    $messageConversion = 'La conversion PHP du site est terminée.';
}
else
{
    $messageConversion = 'La conversion PHP du site est encore en cours : ' . $pagesRestantes . ' pages restent à faire évoluer.';
}



Avec l’état actuel :

$pagesRestantes = 2;



PHP produit :

La conversion PHP du site est encore en cours : 2 pages restent à faire évoluer.



20. Réutiliser la concaténation apprise précédemment

Dans :

'La conversion PHP du site est encore en cours : ' . $pagesRestantes . ' pages restent à faire évoluer.'



nous utilisons :

.



pour concaténer le texte avec :

$pagesRestantes



Nous ne découvrons pas une nouvelle notion ici.

Nous réutilisons la concaténation apprise dans la leçon 4.

21. Afficher le message dans le HTML

Dans le contenu principal de :

index.php



après :

<p><?php echo $messageAccueil; ?></p>



ajoutez :

<p><?php echo $messageConversion; ?></p>



Le HTML conserve son rôle :

p
= paragraphe



PHP produit uniquement le texte choisi.

22. Vérifier le résultat

Enregistrez :

index.php



Puis actualisez :

http://localhost/mon-premier-site/index.php



Vous devez maintenant voir notamment :

Le site possède 3 pages principales et il reste 2 pages à faire évoluer vers PHP.

La conversion PHP du site est encore en cours : 2 pages restent à faire évoluer.



La seconde phrase a été choisie par la structure :

if / else



23. Tester l’autre chemin sans casser le fil rouge

Pour observer temporairement l’autre branche, vous pouvez remplacer uniquement pendant le test :

$pagesConvertiesPhp = 1;



par :

$pagesConvertiesPhp = 3;



PHP calcule alors :

$pagesRestantes = 0;



puis :

$conversionTerminee = true;



Le message devient :

La conversion PHP du site est terminée.



Remettez ensuite :

$pagesConvertiesPhp = 1;



Le projet doit revenir à son état réel.

24. Comprendre pourquoi le message change automatiquement

Nous ne modifions pas directement :

$messageConversion



pour passer d’une phrase à l’autre.

Nous modifions une donnée du projet :

$pagesConvertiesPhp



Cette donnée change :

$pagesRestantes



puis :

$conversionTerminee



et enfin le

if / else

choisit le message.

Nous avons donc une vraie chaîne logique :

donnée

calcul

comparaison

décision

message



25. Utiliser un second if simple

Nous avons aussi :

$progressionCommencee = $pagesConvertiesPhp > 0;



Nous pouvons faire une expérience temporaire :

if ($progressionCommencee)
{
    $messageProgression = 'La conversion PHP a commencé.';
}



Comme la valeur est actuellement :

true



le bloc est exécuté.

Ce test permet de revoir

if

sans

else

.

Supprimez ensuite cette variable de test.

26. Quand utiliser if seul ?

Un

if

seul convient lorsque nous avons besoin d’exécuter quelque chose uniquement si une condition est vraie.

Nous n’avons pas toujours besoin d’un second chemin.

Par exemple :

si une progression a commencé,
préparer un message particulier



Mais lorsque nous voulons prévoir deux résultats exclusifs,

if / else

est plus adapté.

27. Ne pas confondre la condition et le bloc

Dans :

if ($conversionTerminee)
{
    $messageConversion = 'La conversion PHP du site est terminée.';
}



la condition est :

$conversionTerminee



Le bloc est :

{
    $messageConversion = 'La conversion PHP du site est terminée.';
}



PHP évalue d’abord la condition.

Il décide ensuite si le bloc doit être exécuté.

28. L’indentation aide à lire la structure

Nous écrivons :

if ($conversionTerminee)
{
    $messageConversion = 'La conversion PHP du site est terminée.';
}
else
{
    $messageConversion = 'La conversion PHP du site est encore en cours : ' . $pagesRestantes . ' pages restent à faire évoluer.';
}



Les lignes placées à l’intérieur des accolades sont décalées.

Cette indentation ne crée pas la condition.

Elle rend la structure plus facile à lire.

Les accolades, elles, délimitent réellement les blocs.

29. État final du bloc PHP

À la fin de cette leçon, le début de :

index.php



peut 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.';

$progressionCommencee = $pagesConvertiesPhp > 0;
$conversionTerminee = $pagesRestantes === 0;

if ($conversionTerminee)
{
    $messageConversion = 'La conversion PHP du site est terminée.';
}
else
{
    $messageConversion = 'La conversion PHP du site est encore en cours : ' . $pagesRestantes . ' pages restent à faire évoluer.';
}

$formulaireTraite = false;
$formulaireEnAttente = $formulaireTraite === false;

$dernierMessage = null;
$aucunMessage = $dernierMessage === null;
?>



Et dans le contenu principal :

<p><?php echo $messageAccueil; ?></p>
<p><?php echo $messageConversion; ?></p>



30. Le chapitre a maintenant une suite logique

Dans ce chapitre, nous avons avancé dans cet ordre :

opérateurs

comparaisons

conditions



Nous avons d’abord appris à produire des valeurs,

puis à produire des booléens,

et maintenant à prendre une décision à partir de ces booléens.

Nous n’avons utilisé aucune condition avant d’avoir compris les comparaisons.

31. Préparer la prochaine étape

Pour le moment, notre décision possède deux chemins :

if
= premier chemin

else
= second chemin



Mais certaines situations nécessitent plus de deux possibilités.

Nous pourrions par exemple vouloir distinguer :

aucune page convertie

conversion commencée

conversion terminée



Pour cela, PHP permet d’ajouter un chemin intermédiaire avec :

elseif



Nous étudierons cette notion dans la prochaine leçon, qui ouvrira un nouveau chapitre consacré aux décisions plus complètes.

32. Ce que vous devez comprendre avant la prochaine leçon

Vous devez maintenant être capable d’expliquer :

- ce qu’est une condition ;
- le rôle de

if

;
- ce qui se trouve entre les parenthèses du

if

;
- le rôle des accolades ;
- ce qui se passe lorsque la condition vaut

true

;
- ce qui se passe lorsque la condition vaut

false

;
- le rôle de

else

;
- pourquoi un seul des deux blocs

if / else

est exécuté ;
- pourquoi nous stockons le message choisi dans

$messageConversion

avant de l’afficher ;
- comment les notions précédentes s’enchaînent : données, calcul, comparaison, décision ;
- pourquoi l’état réel du fil rouge reste

$pagesConvertiesPhp = 1

à la fin de la leçon ;
- dans quel cas un

if

seul peut suffire.

Retenez surtout :

if
= exécuter un bloc si la condition est vraie

else
= exécuter un autre bloc si la condition est fausse



Dans la prochaine leçon, nous conserverons ce fil rouge et nous ajouterons un troisième chemin avec

elseif

.

Exemple commenté

Nous partons de :

$pagesRestantes = $nombrePages - $pagesConvertiesPhp;
$conversionTerminee = $pagesRestantes === 0;



Puis nous écrivons :

if ($conversionTerminee)
{
    $messageConversion = 'La conversion PHP du site est terminée.';
}
else
{
    $messageConversion = 'La conversion PHP du site est encore en cours : ' . $pagesRestantes . ' pages restent à faire évoluer.';
}



Avec l’état actuel :

$pagesConvertiesPhp = 1;
$pagesRestantes = 2;
$conversionTerminee = false;



PHP choisit le bloc

else

.

Le HTML peut ensuite afficher :

<p><?php echo $messageConversion; ?></p>



sans avoir besoin de connaître le chemin qui a été choisi.

Exercice à réaliser

Continuez dans le même fichier :

index.php



1. Vérifier les données du fil rouge

Conservez :

$nombrePages = 3;
$pagesConvertiesPhp = 1;
$pagesRestantes = $nombrePages - $pagesConvertiesPhp;
$conversionTerminee = $pagesRestantes === 0;



2. Écrire un premier if temporaire

Testez :

if ($conversionTerminee)
{
    echo 'La conversion PHP du site est terminée.';
}



Vérifiez qu’aucun message n’apparaît avec l’état actuel.

3. Ajouter else

Remplacez le test précédent par :

if ($conversionTerminee)
{
    $messageConversion = 'La conversion PHP du site est terminée.';
}
else
{
    $messageConversion = 'La conversion PHP du site est encore en cours.';
}



4. Enrichir le second message

Faites évoluer le bloc

else

:

$messageConversion = 'La conversion PHP du site est encore en cours : ' . $pagesRestantes . ' pages restent à faire évoluer.';



5. Afficher le message

Après :

<p><?php echo $messageAccueil; ?></p>



ajoutez :

<p><?php echo $messageConversion; ?></p>



6. Tester l’autre chemin

Remplacez temporairement :

$pagesConvertiesPhp = 1;



par :

$pagesConvertiesPhp = 3;



Actualisez la page et vérifiez que le message change.

Remettez ensuite :

$pagesConvertiesPhp = 1;



7. Vérifier l’état final

Le projet doit revenir à son état réel, avec une page PHP sur trois.

8. Expliquer ce que vous avez fait

Sans regarder la correction, expliquez avec vos propres mots :

1. ce que fait

if

;
2. ce que représente la condition entre parenthèses ;
3. le rôle des accolades ;
4. le rôle de

else

;
5. pourquoi un seul bloc est exécuté ;
6. pourquoi

$messageConversion

reçoit une valeur différente selon la condition ;
7. pourquoi la prochaine leçon aura besoin d’un troisième chemin.

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.';

$progressionCommencee = $pagesConvertiesPhp > 0;
$conversionTerminee = $pagesRestantes === 0;

if ($conversionTerminee)
{
    $messageConversion = 'La conversion PHP du site est terminée.';
}
else
{
    $messageConversion = 'La conversion PHP du site est encore en cours : ' . $pagesRestantes . ' pages restent à faire évoluer.';
}

$formulaireTraite = false;
$formulaireEnAttente = $formulaireTraite === false;

$dernierMessage = null;
$aucunMessage = $dernierMessage === null;
?>



Dans le contenu principal :

<p><?php echo $messageAccueil; ?></p>
<p><?php echo $messageConversion; ?></p>



Avec :

$pagesConvertiesPhp = 1;



nous avons :

$pagesRestantes = 2;
$conversionTerminee = false;



PHP exécute donc le bloc

else

.

Le message affiché est :

La conversion PHP du site est encore en cours : 2 pages restent à faire évoluer.



Dans la prochaine leçon, nous ajouterons un troisième chemin avec

elseif

pour distinguer plusieurs états de progression.

À retenir

Dans cette leçon, nous avons utilisé pour la première fois les booléens afin de prendre une décision.

Nous avons appris :

if
= exécuter un bloc lorsque la condition est vraie

else
= exécuter un autre bloc lorsque la condition est fausse



Nous avons utilisé le booléen déjà préparé :

$conversionTerminee = $pagesRestantes === 0;



puis :

if ($conversionTerminee)
{
    $messageConversion = 'La conversion PHP du site est terminée.';
}
else
{
    $messageConversion = 'La conversion PHP du site est encore en cours : ' . $pagesRestantes . ' pages restent à faire évoluer.';
}



Nous avons ensuite affiché le résultat avec le HTML déjà connu :

<p><?php echo $messageConversion; ?></p>



Le fil rouge suit maintenant cette logique :

données
→ calcul
→ comparaison
→ décision
→ message



Cette leçon termine le chapitre « Manipuler les valeurs et préparer les décisions ».

Dans la prochaine leçon, un nouveau chapitre commencera. Nous ajouterons

elseif

afin de gérer plus de deux chemins sans introduire encore les opérateurs logiques complexes.

Seuil de réussite, en pourcentage : 100 %. QCM obligatoire pour terminer le cours.

Sommaire du cours

Découvrir PHP et exécuter son premier script

  1. Comprendre le rôle de PHP et créer sa première page PHP
  2. Créer et utiliser ses premières variables PHP
  3. Comprendre les principaux types de valeurs en PHP

Manipuler les valeurs et préparer les décisions

  1. Manipuler les valeurs avec les premiers opérateurs PHP
  2. Comparer des valeurs avec les opérateurs de comparaison
  3. Prendre ses premières décisions avec if et else

Construire des décisions plus complètes

  1. Gérer plusieurs chemins avec elseif
  2. Combiner plusieurs conditions avec les opérateurs logiques
  3. Organiser des conditions complexes sans perdre la lisibilité

Regrouper et parcourir des valeurs avec les tableaux

  1. Regrouper plusieurs valeurs dans un premier tableau PHP
  2. Associer plusieurs informations avec les tableaux associatifs
  3. Parcourir un tableau avec foreach

Consolider les bases et finaliser le projet PHP

  1. Répéter avec for et choisir la boucle adaptée
  2. Créer et utiliser ses premières fonctions PHP
  3. Traiter et valider le formulaire de contact avec PHP