Exercice PHP 8 - TD Numéro 4
#1
Objectifs du TD
- Construire un tableau multidimensionnel avec un mix associatif et indexé.
- Faire des fonctions qui vont chercher les informations qui se trouvent dans un élément du tableau et les affichent.
- Mettre ces fonctions dans un fichier séparé.
- Choisir une boucle de parcours du tableau. Le parcourir en appelant les fonctions d'affichage que l'on vient de créer.
#2
Sujet et solution pas à pas : Première étape
Sujet de la première étape.
- Créez un tableau indexé,
$memo
qui contient trois tableaux vides. -
Remplacez les tableaux vides par des tableaux associatifs. Chaque tableau associatif contient deux clés :
- Une clé
'question'
qui a pour valeur la chaîne'Première question'
. - Une clé
'reponse'
qui a pour valeur la chaîne'Première réponse'
. - Continuez avec les chaînes
'Deuxième question'
,'Deuxième réponse'
...
- Une clé
- Pour vérifier, utilisez le navigateur, affichez la deuxième réponse. Faites un
var_dump
du tableau complet.
Solution de la première étape 😃.
Si vous avez lu le sujet jusqu'à la fin, vous avez sans doute remarqué que je vous demande d'afficher dans un navigateur. Donc, on a besoin d'une page HTML avec du PHP dedans. On va la faire !
- Je crée un répertoire sur le bureau que j'appelle
Test
. Je le prends en édition avec VSCode. - Je crée le fichier
index.php
. Je crée une structure minimale HTML avec l'abréviation Emmet!
. - Maintenant, il me faut créer un tableau. Pour ça, je vais utiliser la notation raccourcie
$memo = []
. - Ce tableau contient trois éléments qui sont des tableaux donc ça va ressembler au code ci-dessous.
Je transforme chaque tableau vide en un tableau associatif. La première clé s'appelle question
et je vais lui donner la valeur 'Première question'
. Pour cela, je vais utiliser la notation 'clé' => valeur
. Je fais pareil pour la deuxième clé qui s'appelle reponse
(* 'Première réponse').
- Il me reste à compléter les autres éléments.
- Pour tester, la deuxième réponse est à l'indice
[1]
avec la clé['reponse']
soit$memo[1]['reponse']
.

#3
Sujet et solution pas à pas : Deuxième étape
Sujet de la deuxième étape.
- Je vous demande d'écrire deux fonctions PHP,
poserQuestion
etafficherReponse
. Ces deux fonctions prennent en argument le tableau multidimensionnel et un numéro. Elles affichent pour l'une la question et pour l'autre la réponse. Les paramètres des fonctions$tab
et$numero
doivent être typés, le retour de la fonction aussi. - Documentez les deux fonctions.
- Testez les deux fonctions sur un numéro particulier.
Solution de la deuxième étape 😃.
- Je déclare une fonction vide
function poserQuestion() {}
. - J'ajoute les deux paramètres
$tab,$numero
. - Je mets le type des paramètres soit
array
pour$tab
etint
pour$numero
. Je n'oublie pas que la fonction ne retourne rien, donc c'estvoid
. - Enfin, je documente la fonction. Chez moi (intelephense premium + PHPDoc Comment), il suffit de survoler le mot réservé
function
et de cliquer sur l'ampoule jaune puis de choisirAddPHPDoc
.

#4
Sujet et solution pas à pas : Troisième étape
Sujet de la troisième étape.
- Créez un fichier séparé
afficher.php
. Y mettre les deux fonctions et inclure le fichierafficher.php
dans le fichierindex.php
. - Choisissez une boucle pour parcourir le tableau et affichez les questions / réponses au moyen des deux fonctions.
Solution de la troisième étape 😃.
Pour parcourir le tableau $memo
qui est un tableau indexé dans sa première dimension, hé bien, je vais choisir la boucle for
. Pour contrôler le parcours de la boucle, je vais utiliser une variable $i
. Je vais parcourir la boucle, de $i=0
à $i < count($memo)
. Soit $i
égal à 2
. (* La fonction standard PHP count()
renvoie la taille du tableau.)
Ci-dessous fichier affichier.php
.
Ci-dessous fichier index.php
.

#5
Conclusion
Un TD assez facile, mais qui prépare bien le TD suivant qui lui est un peu plus élaboré.