Aller au menu - Aller au contenu

Les fonctions


Informations sur le tutoriel

Avatar
Auteur : M@teo21
Visualisations : 686 873


Plus d'informations Plus d'informations
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.
Chapitre précédent Sommaire Chapitre suivant

Créer ses propres fonctions

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 :p ). 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 ! :D (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 ? :euh:
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 ^^ )

Image utilisateur


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
1
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 :p 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 ? :p ). 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 ! :D

Transformer PHP en horloge parlante

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 :D
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 :p ).
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 : PHP
1
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).

Si l'heure n'était pas bonne, sachez que c'est le serveur qui donne l'heure. Et le serveur de ce site étant situé à Paris, vous comprendrez le décalage horaire si vous habitez au Canada ;)

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.

Au fait, vous vous souvenez que, pour le calcul du volume du cône, on a utilisé le nombre Pi (3,14). Oui mais voilà, ce n'est pas très précis.
Heureusement vous savez quoi ? Il existe une fonction en PHP qui retourne la valeur de Pi :D Cette fonction ne prend pas de paramètre, pour l'appeler tapez juste Pi(). Essayez d'afficher ce nombre vous verrez !

Q.C.M.

Quel est le mot-clé qui permet de déclarer une fonction ?
Qu'est-ce qu'un paramètre ?
Voici l'en-tête d'une fonction :
function CalculDepenses($nombre, $valeur)
Quelle est la seule instruction correcte pour faire appel à cette fonction ?
Que renvoie cette fonction ?
function MaFonction($parametre)
{
echo $parametre;
}

Statistiques de réponses au QCM


Fin du chapitre sur les fonctions !
Plus que quelques chapitres et vous pourrez vous vanter de ne plus être un débutant total en PHP ! :D
Chapitre précédent Sommaire Chapitre suivant

Informations sur le tutoriel

Retour en haut Retour en haut

Créé : Le 19/07/2005 à 23:21:44
Modifié : Le 17/06/2009 à 11:18:11
Avancement : 100%
Licence : Copie non autorisée

56 commentaires