Bien que PHP propose des centaines et des centaines de fonctions (j'insiste dessus, mais il faut dire qu'il y en a tellement !), parfois il n'y aura pas ce que vous cherchez et il faudra écrire vous-même la fonction. C'est une façon pratique d'étendre les possibilités offertes par PHP.
Quand écrire une fonction ? En général, si vous effectuez des opérations un peu complexes que vous pensez avoir besoin de refaire régulièrement, il est conseillé de créer une fonction.
Nous allons découvrir la création de fonctions à travers 2 exemples :
- Afficher un message de bienvenue en fonction du nom
- Calculer le volume d'un cône
1er exemple : dis bonjour au Monsieur
C'est peut-être un peu fatigant de dire bonjour à chacun de ses visiteurs non ? Ca serait bien que ça le fasse automatiquement ! Les fonctions sont justement là pour nous aider !
Regardez le code ci-dessous :
Code : PHP 1
2
3
4
5
6
7
8
9
10
11
12 | <?php
$nom = 'Sandra';
echo 'Bonjour, ' . $nom . ' !<br />';
$nom = 'Patrick';
echo 'Bonjour, ' . $nom . ' !<br />';
$nom = 'Claude';
echo 'Bonjour, ' . $nom . ' !<br />';
?>
|
Vous voyez, c'est un peu fatigant à la longue... Alors nous allons créer une fonction qui le fait toute seule à notre place !
Code : PHP 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 | <?php
function DireBonjour($nom)
{
echo 'Bonjour ' . $nom . ' !<br />';
}
DireBonjour('Marie');
DireBonjour('Patrice');
DireBonjour('Edouard');
DireBonjour('Pascale');
DireBonjour('François');
DireBonjour('Benoît');
DireBonjour('Père Noël');
?>
|
Alors qu'y a-t-il de différent ici ? C'est surtout en haut qu'il y a une nouveauté : c'est la fonction. En fait, les lignes en haut permettent de définir la fonction (son nom, ce qu'elle est capable de faire etc...). Elles ne font rien de particulier, mais elles disent à PHP : "Une fonction DireBonjour existe maintenant".
Pour créer une fonction, vous devez taper
function (ça veut dire fonction en anglais

). Ensuite, donnez un nom à votre fonction. Par exemple, celle-ci s'appelle
DireBonjour.
Ce qui est plus particulier après, c'est ce qu'on met entre parenthèses : il y a une variable dedans. C'est le
paramètre dont a besoin la fonction pour travailler, afin qu'elle sache à qui elle doit dire bonjour dans notre cas. Notre fonction doit forcément être appelée avec un paramètre (le nom) sans quoi elle ne pourra pas travailler.
Vous avez peut-être remarqué que cette ligne est la seule à ne pas se terminer par un point-virgule. C'est normal, il ne s'agit pas d'une instruction mais juste d'une "carte d'identité" de la fonction (son nom, ses paramètres...)
Ensuite, vous repérez des accolades. Elles permettent de marquer les limites de la fonction. La fonction commence dès qu'il y a un
{ et se termine lorsqu'il y a un
}. Entre les deux, il y a le contenu de la fonction.
Ici, la fonction contient une seule instruction (
echo). J'ai fait simple pour commencer mais vous verrez qu'en pratique une fonction contient plus d'instructions que cela.
Voilà, la fonction est créée, vous n'avez plus besoin d'y toucher. Après, pour faire appel à elle, il suffit d'indiquer son nom, et de préciser ses paramètres entre parenthèses (ici, on doit indiquer le nom). Enfin, il ne faut pas oublier le fameux
; car il s'agit d'une instruction. Par exemple :
Code : PHP | <?php
DireBonjour('Marie');
?>
|
A vous d'essayer ! Créez une page avec cette fonction et dites bonjour à qui vous voulez, vous verrez : ça marche !

(encore heureux :p)
Un conseil pour que vous vous entrainiez sur les fonctions : basez-vous sur mes exemples et essayez de les retoucher petit à petit vous-mêmes pour voir ce que ça donne. Il peut y avoir des fonctions très simples comme des fonctions très compliquées, alors allez-y prudemment.
2ème exemple : calculer le volume d'un cône
Allez on passe à la vitesse supérieure. La fonction
DireBonjour que l'on a créée ne renvoyait aucune valeur, elle se contentait d'afficher des actions (afficher un texte dans le cas présent). Maintenant, nous allons créer une fonction qui renvoie une valeur.
Ici notre fonction va servir à faire un calcul : le calcul du volume d'un cône. Le principe est le suivant : vous donnez le rayon et la hauteur du cône à la fonction, elle travaille et vous renvoie le volume que vous cherchiez.
Bon tout d'abord il faut connaître la formule pour calculer le volume d'un cône. Vous avez oublié comment on fait ?

Il faut connaître le rayon et la hauteur. Le calcul à faire pour trouver le volume est :
rayon * rayon * 3.14 * hauteur * (1/3) (je ne vous demandais pas de le savoir

).
Vous êtes capables de comprendre le code ci-dessous normalement, si vous avez bien suivi dans le chapitre précédent. Seul problème si on a à le faire plusieurs fois, c'est vite répétitif regardez :
Code : PHP | <?php
// calcul du volume d'un cône de rayon 5 et de hauteur 2
$volume = 5 * 5 * 3.14 * 2 * (1/3);
echo 'Le volume du cône de rayon 5 et de hauteur 2 est : ' . $volume . ' cm<sup>3</sup><br />';
// calcul du volume d'un cône de rayon 3 et de hauteur 4
$volume = 3 * 3 * 3.14 * 4 * (1/3);
echo 'Le volume du cône de rayon 3 et de hauteur 4 est : ' . $volume . ' cm<sup>3</sup><br />';
?>
|
Nous allons donc créer une fonction
VolumeCone, qui va calculer le volume du cône en fonction du rayon et de la hauteur. Cette fonction ne va rien afficher, on veut juste qu'elle nous renvoie le volume qu'on cherche.
Regardez attentivement le code ci-dessous, il présente 2 nouveautés :
Code : PHP | <?php
// Ci-dessous, la fonction qui calcule le volume du cône
function VolumeCone($rayon, $hauteur)
{
$volume = $rayon * $rayon * 3.14 * $hauteur * (1/3); // calcul du volume
return $volume; // indique la valeur à renvoyer, ici le volume
}
$volume = VolumeCone(3, 1);
echo 'Le volume d\'un cône de rayon 3 et de hauteur 1 est de ' . $volume;
?>
|
Regardez bien la fonction, dedans il y a l'instruction :
return $volume;.
Cette instruction indique ce que doit renvoyer la fonction. Ici la fonction renvoie le volume. Si vous aviez tapé
return 15, ça aurait à chaque fois affiché un volume de 15 (ce qui est un peu débile j'en conviens, mais faites l'essai !).
La fonction renvoie une valeur, donc on doit récupérer cette valeur dans une variable :
Code : PHP | <?php
$volume = VolumeCone(3, 1);
?>
|
Ensuite, on peut afficher ce que contient la variable à l'aide d'une instruction
echo.
Les possibilités de création de fonctions sont quasi-infinies. Il est clair que normalement vous n'allez pas avoir à créer de fonction qui calcule le volume d'un cône (qui est assez fou pour faire ça ?

). Tout ce que je vous demande en fait ici, c'est de comprendre qu'une fonction c'est très pratique et ça peut vous faire gagner du temps.
Accessoirement, si vous comprenez un peu comment fonctionne mon code c'est bien, si vous essayez de créer une ou deux fonctions de test chez vous c'est encore mieux.