Créer ses propres fonctions


Bien que PHP propose des centaines et des centaines de fonctions (j'insiste, 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êmes 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 deux exemples :

  • l'affichage d'un message de bienvenue en fonction du nom ;
  • le calcul du volume d'un cône.

Premier exemple : dis bonjour au Monsieur



C'est peut-être un peu fatigant de dire bonjour à chacun de ses visiteurs, non ? Ça serait bien de le faire 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

<?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 à notre place !

Code : PHP 

 1

 2

 3

 4

 5

 6

 7

 8

 9

10

11

12

13

14

<?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 fonctionDireBonjour existe maintenant ».

Pour créer une fonction, vous devez taper function (en français, ça veut dire « fonction »). Ensuite, donnez-lui un nom. 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. 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. Cette dernière commence dès qu'il y a un { et se termine lorsqu'il y a un \}. Entre les deux, il y a son contenu.

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. Enfin, il ne faut pas oublier le fameux point-virgule ( ; ) car il s'agit d'une instruction. Par exemple :

Code : PHP 

1

2

3

<?php

DireBonjour('Marie');

?>


À vous d'essayer ! Créez une page avec cette fonction et dites bonjour à qui vous voulez, vous verrez : ça marche (encore heureux !) !

Un conseil pour que vous vous entraîniez sur les fonctions : basez-vous sur mes exemples et essayez de les retoucher petit à petit 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.




Deuxiè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'effectuer 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 à la fonction le rayon et la hauteur du cône, 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 de la base et la hauteur. La formule à utiliser pour trouver le volume est :

 




Représentation d'un cône



Si vous avez bien suivi dans le chapitre précédent, vous êtes normalement capables de comprendre le code ci-dessous. 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 />';

?>



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 deux 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, il y a l'instruction : return $volume;.
Cette instruction indique ce que doit renvoyer la fonction. Ici, elle renvoie le volume. Si vous aviez tapé return 15, ça aurait à chaque fois affiché un volume de 15 (c'est un peu idiot j'en conviens, mais faites l'essai !).

La fonction renvoie une valeur, que l'on doit donc récupérer dans une variable :

Code : PHP 

1

2

3

<?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 ?). En fait, tout ce que je vous demande ici, c'est de comprendre qu'une fonction peut se révéler très pratique et vous faire gagner du temps.


Créé avec HelpNDoc Personal Edition: Produire des livres EPub gratuitement