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é,
$memoqui 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_dumpdu 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,
poserQuestionetafficherReponse. 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$tabet$numerodoivent ê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
arraypour$tabetintpour$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é
functionet 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.phpdans 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é.





