En PHP, vous allez être forcément amenés un jour ou l'autre à faire des calculs, et ceux-ci risquent d'être répétitifs. Dans le chapitre précédent je vous ai montré les calculs de base.
Ici je vais pas vous faire un cours de maths, mais plutôt vous montrer comment automatiser certaines tâches à l'aide de fonctions. Car en PHP comme dans n'importe quel autre langage, si vous vous rendez compte que vous faites quelque chose de répétitif, dites-vous bien qu'il y a forcément plus simple et plus rapide.
Qu'est-ce qu'une fonction ?
Une
fonction, c'est une série d'instructions qui retourne une valeur. En gros, si vous avez besoin d'effectuer un calcul un peu long ou complexe et répétitif, vous faites appel à une fonction :
- Toi, la fonction CalculCube, donne-moi le volume d'un cube dont l'arête mesure 4 cm.
La fonction effectue les calculs demandés puis répond :
- Ce cube a un volume de 64 cm^3.
Si vous aviez eu à le faire une seule fois, vous auriez pu vous contenter de faire les calculs comme expliqué dans le chapitre précédent. Mais si vous aviez à le faire 5 fois ? 10 fois ? 100 fois ?
Je vais donc vous montrer par des exemples concrets
pourquoi les fonctions vous seront utiles
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 !";
?>
|
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...)
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. Késako ? C'est ce qu'on appelle un
paramètre : une information dont la fonction a besoin pour travailler. Ici, on doit lui indiquer le nom de la personne pour qu'elle sache à qui s'adresser.
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 deux symboles curieux : des accolades. En fait, 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 que souvent il y a plusieurs instructions.
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 :
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, vous n'avez pas encore vu tout ce qu'on peut faire avec une fonction !
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.
Ce qui change par rapport à la première fonction qu'on a étudié ? C'est qu'ici, la fonction va retourner une valeur ! Vous allez voir
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 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 : PHP1
2
3
4
5
6
7
8
9 | <?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 />";
?>
|
En PHP, on ne met pas de virgule pour les nombres décimaux, il faut mettre un point ! Par exemple, il ne faut pas écrire 3,14 mais 3.14 !
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 1
2
3
4
5
6
7
8
9
10
11 | <?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 !).
Alors ici la fonction n'est pas du tout utilisée de la même manière. Elle renvoit une valeur, donc on met cette valeur dans une variable :
$volume = VolumeCone(3, 1);
Ensuite, on peut afficher ce que contient la variable à l'aide d'une instruction echo.
Allons ne faites pas cette tête-là voyons

Je vous ai dit que la fonction renvoyait une valeur, eh bien quand vous écrivez VolumeCone(3, 1), PHP remplace ça par la valeur que retourne la fonction ! (ici ça renvoit 9.42)
Autre nouveauté, la fonction prend deux paramètres : le rayon et la hauteur. Comme vous le voyez, on peut mettre plusieurs paramètres, il suffit de les séparer par des virgules
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. Pas besoin d'en savoir plus, en fait nous allons voir que PHP a déjà prévu le coup : il existe des centaines de fonctions toutes prêtes !
Si je vous ai parlé des fonctions, ce n'est pas vraiment parce que vous allez avoir besoin de créer les vôtres tout de suite. En fait, ce que vous venez d'apprendre vous servira, mais bien plus tard.
Vous venez de voir comment est constituée une fonction, comment elle marche, à quoi elle peut servir. Mais bien souvent, vous n'aurez pas à vous prendre la tête à créer vos propres fonctions. En effet, en PHP il y a des centaines de fonctions toutes prêtes que vous pouvez utiliser !
Ces fonctions sont très pratiques et très nombreuses. En fait, c'est en partie là qu'est la force de PHP : ses fonctions sont vraiment excellentes

J'ai en fait remarqué que, pratiquement à chaque fois que je m'apprêtais à écrire une fonction, celle-ci existait déjà.
Il faut surtout retenir qu'il existe deux types de fonctions :
- Celles qui effectuent des actions, et ne renvoient aucune valeur.
- Celles qui, après plusieurs calculs, renvoient une valeur (ce sont les plus fréquentes)
Voici un petit aperçu des fonctions qui existent pour vous mettre l'eau à la bouche :
- Une fonction qui permet de rechercher et de remplacer des mots dans une variable
- Une fonction qui envoie un fichier sur un serveur
- Une fonction qui permet de créer des images miniatures (aussi appelées thumbnails)
- Une fonction qui envoie un mail avec PHP (très pratique pour faire une newsletter !)
- Une fonction qui permet de modifier des images, y écrire du texte, tracer des lignes, des rectangles etc...
- Une fonction qui crypte des mots de passe.
- Une fonction qui renvoie l'heure, la date...
- Etc etc...
Pratiquement à chaque fois, il faudra indiquer des paramètres à la fonction pour qu'elle sache sur quoi travailler.
Nous allons nous intéresser rapidement à la fonction qui renvoie l'heure et la date. Il s'agit de
date.
C'est une fonction "toute prête". Vous n'avez pas à écrire "function" (le code de la fonction). En effet, vu que c'est une fonction toute prête, PHP sait déjà comment il faut faire (pas besoin de lui réexpliquer

).
Vous avez juste besoin de donner un paramètre. Pour la fonction
date, voici les 5 paramètres les plus utilisés :
Attention ! Respectez les majuscules/minuscules, c'est important !
| Paramètre |
Description |
| H |
Heure |
| i |
Minute |
| d |
Jour |
| m |
Mois |
| Y |
Année |
date est une fonction vraiment impressionnante, elle prend en fait beaucoup plus de paramètres (une trentaine). Vous verrez tout ça dans la partie III quand on détaillera plus la fonction.
Bon, si vous voulez afficher l'année, c'est très simple :
Code : PHP1
2
3
4 | <?php
$annee = date("Y");
echo "$annee";
?>
|
On peut bien entendu faire mieux, voici la date complète et l'heure :
Code : PHP 1
2
3
4
5
6
7
8
9
10
11
12
13 | <?php
// Enregistrons les informations de date dans des variables
$jour = date("d");
$mois = date("m");
$annee = date("Y");
$heure = date("H");
$minute = date("i");
// Maintenant on peut afficher ce qu'on a recueilli
echo "Bonjour ! Nous sommes le $jour/$mois/$annee et il est $heure h $minute.";
?>
|
Et voilà le travail ! On a pu afficher la date et l'heure en un clin d'oeil

Normalement, quand vous avez cliqué sur "Essayer !", vous avez dû avoir la date et l'heure exactes (n'hésitez pas à essayer chez vous).
L'étude de fonctions comme celle-ci durera tout une partie du cours, et ce sera une partie très intéressante (car généralement les fonctions sont simples à utiliser et permettent de faire des choses très pratiques !).
En attendant, ce chapitre touche à sa fin, et il ne nous reste plus que quelques chapitres à traiter pour finir la première partie ("Les bases de PHP"). Je reconnais que ces chapitres ne vous permettent pas encore de créer un site web super méga pratique génial en PHP. Mais patience, les bonnes choses arriveront bientôt, et vous verrez que tout ce que je vous apprends maintenant va vous être très utile dans quelques temps

Aussi ne vous découragez pas et continuez à bien suivre cette première partie, ce que vous apprenez va bientôt prendre tout son sens.