« SPARQL Protocol and RDF Query Language/Travail pratique/PHP les fonctions » : différence entre les versions

Contenu supprimé Contenu ajouté
m Robot : Changement de type cosmétique
m Relecture
Ligne 1 :
{{Travail pratique présentation
{{ébauche informatique}}
| objectif1 = utiliser les fonctions
 
* | objectif2 = utiliser l'instruction switch
| durée = 1,5 heure
| matériel1 = un serveur Web Linux avec PHP.
}}
<div style="float:right; padding: 0 0 0 1em;">__TOC__</div>
{{Travail pratique
| titre = Les fonctions
Ligne 9 ⟶ 14 :
| précédent = [[../PHP les boucles et opérateurs/]]
| suivant = [[../PHP avec MySQL/]]
| niveau = ?0
}}
 
== Introduction ==
Dans ce TP, nous allons acquérir quelques bases de programmation PHP pour utiliser des fonctions.
 
Ce TP a pour objectif de pouvoir utiliser des librairies de fonctions plus facilement par la suite.
 
=== Durée du TP ===
 
'''?? heures'''
 
=== Matériel du TP ===
Il vous faut avoir fait tous les TPs précédent.
 
== A savoir avant de commencer ==
Pour ce TP, nous allons voir :
* les fonctions
* l'instruction switch
 
Nous allons rapidement aborder chacun de ces points.
 
=== Les fonctions ===
==== Définition ====
Ligne 45 ⟶ 37 :
</source>
 
Votre code affichera les notes d'un élève, mais on veut :
*mettre en rouge toutes les notes (strictement) inférieures à 10.
*mettre en vert toutes les notes supérieures (ou égales) à 15.
Ligne 61 ⟶ 53 :
*On place la fonction au début du code(au sein de balises PHP).
**PHP ne parcourt qu'une seule fois le code. Si la fonction n'est pas définie avant son utilisation, PHP génère une erreur.
*'''On ne la crée qu'une fois, tandis qu'on la convoque autant de fois que l'on veut.'''
 
==== Syntaxe ====
Ligne 76 ⟶ 68 :
*il est obligatoire de commencer par écrire '''function''',
*ensuite vient '''le nom'''. On va lui donner un nom simple à retenir.
**comme les variables, les noms de fonctions sont libres, il faut justesimplement bannir les espaces et les accents.
**le nom de votre fonction est sensible à la casse, c'est-à-dire que vous devenez respecter les majuscules et les minuscules quand vous appelez votre fonction.
*Et, entre parenthèseparenthèses, le '''paramètre''' (une variable imaginaire, $nombre, dont on ne connaît pas encore la valeur)...
 
 
On fait, comme si $nombre existait déjà.<br />
Voici un exemple de code qui effectue ce quque l'on veut obtenir :
<source lang="php">
<?php
Ligne 113 ⟶ 105 :
</source>
 
Voici notre page Web en entier avec la définition de notre fonction avant l'appelleappel de la fonction dans le code :
<source lang="php">
<html>
Ligne 148 ⟶ 140 :
</source>
 
Bien que votre fonction se définissait avec "colore($nombre)", vous pouvez l'appeler avec "colore($note)". ÇaCela ne pose aucun problème. Le nom de la variable utilisée comme paramètre au sein de la fonction est celui que vous voulez.
 
==== Plusieurs paramètres ====
Ligne 173 ⟶ 165 :
 
==== Valeur de retour ====
Si on ne veut pas une fonction qui affiche, mais une fonction qui, par exemple, calcule et renvoie une valeur, '''on utilisera le mot clé return'''.
 
 
Par exemple, réalisons une fonction qui nous indique si un nombre est pair ou impair ? .
 
Voici un formulaire de saisie et une analyse du nombre entré :
<source lang="php">
<html>
<head><title><Pair ou impair ?</title></head>
<body>
<?php //fonction qui fait le diagnostic
Ligne 211 ⟶ 203 :
Le mot clé '''return''' :
*stoppe la fonction
**on peut le placer à tout moment dans la fonction, mais pour une meilleurmeilleure lisibilité du code, il ne faut l'utiliser qu'une fois et comme dernière instruction de la fonction (juste avant l'accolade finale qui ferme la fonction).
*ne peut renvoyer qu'une seule valeur
**libre à vous de rendre cette valeur complexe comme un tableau ou un objet.
Ligne 218 ⟶ 210 :
 
==== Importer des fonctions ====
Si votre fonction est utilisée dans au moins deux pages Web, '''vous pouvez tout-à-fait mettre vos fonctions dans un autre fichier et partager votre fonction dans plusieurs pages Web'''.
Il vous suffit de '''convoquer le fichier une seule fois au tout début de chacune de vos pages PHP'''.
 
Avec une fonction include, vous pouvez insérer le code d'un autre fichier dans votre page :
<source lang="php">
<?php
Ligne 227 ⟶ 219 :
?>
</source>
ou require, qui lève une erreur s'il ne trouve pas le fichier :
<source lang="php">
<?php
Ligne 233 ⟶ 225 :
?>
</source>
ou require_once, qui lève une erreur, s'il ne trouve pas le fichier, mais qui ne charge qu'une fois ce fichier. Cela évite de recharger inutilement ce fichier. si require_once tenteest deappelé rechargerplusieurs pour charger le même fichier.
<source lang="php">
<?php
Ligne 254 ⟶ 246 :
Dans chacune des pages de votre site où vous souhaitez que le message apparaisse, vous devrez :
* 1 Ajouterajouter la ligne suivante :
<source lang="php">
<?php
Ligne 260 ⟶ 252 :
?>
</source>
* 2 Vous ne devez pas oublier de mettred'insérer "require_once('fonctions.php');" au début de votre page.
 
 
Ligne 266 ⟶ 258 :
 
{{remarque|contenu=
La fonction DerniereMagDernierMag '''n'a pas de paramètres'''. C'est une simple fonction d'affichage. Une fonction sans paramètre conserve toutefois des parenthèses vides, dans sa définition comme à chaque convocation.
}}
 
=== La commande switch ===
 
La commande switch gère les conditions multiples. Cela évite d'utiliser inutilement d'imbriquer les instructions if, elseif et else.
*Au lieu des if, elseif, else, if imbriqués,...
 
Exemple :
Ligne 300 ⟶ 291 :
*Dans le cas (case) où la variable $corpulence est égale à :
**'denutrition' alors affecter le texte 'Vous êtes en dénutrition.' à la variable $verdict
**'maigre' alors affecter une autre valeur à $verdict.
**une autre valeur que 'denutrition' ou 'maigre' alors les instructions dans le cas Default seront utilisées
*'''On sait que ces conditions s'excluent l'une l'autre grâce à l'instruction break''';, qui signifie : 'quand tu as finisfini, sors de ce switch'.
 
== Exercices ==
=== Lecture d'une liste depuis un formulaire ===
On veut qu’un utilisateur puisse mettre autant de mots-clés qu’il souhaite par expérience dans son CV.
*Vous allez laisser un seul champ pour les mots clés pourde manière à pouvoir les écrire en les séparantsséparant par des espaces.
*Utiliser la function explode($separateur,$text) pour convertir cette liste en un tableau.
*Afficher les mots-clés dans le CV, séparéséparés par des virgules, avec la fonction implode($glue,$arrayMotsCles) qui retourne du texte.
*Si vous avezrencontrez un bug, afficher le contenu de votre variable avec : <br/>
echo print_r($mots_cles)
 
{{solution|contenu=
Ligne 403 ⟶ 395 :
 
=== Gestion d'un formulaire dynamique ===
On veut qu’un utilisateur puisse mettreindiquer autant d’expériences qu’il le souhaite.
 
Il faut que PHP enregistre, dans des tableaux, les données de toutes les expériences envoyées par un formulaire.
*RajouterAjoutez [] (crochet ouvert etpuis crochet fermé, sans espace) à la fin du nom de tous les champs qui concerneconcernent une expérience dans le formulaire. PHP créera ainsi un tableau Posteposte, date_debut, etc.
*RecopierRecopiez dans votre formulaire ces champs votre formulaire pour permettre à l’utilisateur d’écrire 3trois expériences.
*Dans un fichier '''fonctions.php''', fabriquer la fonction afficheExperience($arrayExperience,$index) pour afficher une expérience .
*Utiliser cette fonction pour afficher le CV.
 
 
{{solution|contenu=
Ligne 512 ⟶ 503 :
</source>
 
Et voici le nouveau fichier functions.php :
<source lang="php">
<?php
Ligne 552 ⟶ 543 :
 
=== Création du formulaire dynamique ===
Maintenant qu’on peut afficher '''n''' expériences dans un CV., Onon va faire en sorte que le fichier HTML puisse, à la demande de l’utilisateur, rajouter des expériences.
 
Insérer dans la page du formulaire le code suivant avant l’élément body :
Ligne 576 ⟶ 567 :
</source>
 
Pour indiquer la zone "où insérer les champs pour décrire son expérience et le bouton insérer", on remplace les précédents champs de texte par le code suivant :
<source lang="html4strict">
Expériences professionnelles : <br />
Ligne 584 ⟶ 575 :
 
{{solution|contenu=
Voici à quoi ressemble maintenant le fichier formMonCV.html :
<source lang="html4strict">
<html>
Ligne 629 ⟶ 620 :
 
[[Catégorie:SPARQL Protocol and RDF Query Language]]
{{Bas de page
| leçon = TP SPARQL
{{ébauche | idfaculté = informatique}}
| précédent = [[../PHP les boucles et opérateurs/]]
| suivant = [[../PHP avec MySQL/]]
}}