Qu'est-ce qu'une fonction ?

Une fonction est une série d'instructions qui effectue des actions et qui retourne une valeur. En général, dès que vous avez besoin d'effectuer des opérations un peu longues dont vous aurez à nouveau besoin plus tard, il est conseillé de vérifier s'il n'existe pas déjà une fonction qui fait cela pour vous. Et si la fonction n'existe pas, vous avez la possibilité de la créer.

Imaginez que les fonctions sont des robots comme dans la figure suivante.




Vous ne savez pas ce qui se passe à l'intérieur de ce robot, mais vous pouvez appuyer sur un bouton pour lui demander de faire quelque chose de précis. Avec les fonctions, c'est le même principe !


Dialogue avec une fonction



Voici le genre de dialogue qu'on peut avoir avec 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 cm3

On donne en entrée à la fonction un paramètre sur lequel elle va faire des calculs (ici, la longueur de l'arête : 4) et la fonction nous retourne en sortie le résultat : 64. Voyez la figure suivante.



Grâce à la fonction, vous n'avez pas eu besoin de vous souvenir de la manière dont on calcule le volume d'un cube. Bon ici c'était assez simple (il suffisait de faire $4*4*4$), mais vous serez souvent amenés à faire des opérations de plus en plus complexes et les fonctions vous permettront de ne pas avoir à vous soucier des détails des calculs.

Si vous aviez eu à déterminer le volume du cube une seule fois, vous auriez pu chercher la formule dans un livre (si vous ne vous en souveniez pas) et écrire le calcul à la main. Mais si vous aviez à le faire 5 fois ? 10 fois ? 100 fois ?

En quoi est-ce différent des boucles ? Avec les boucles on peut faire répéter le même code plusieurs fois aussi !



Oui, mais les fonctions sont capables de s'adapter en fonction des informations que vous leur envoyez. Par exemple dans notre cas, il suffit de transmettre la longueur de l'arête du cube à notre fonction pour qu'elle nous retourne le résultat. Ces informations que l'on donne en entrée à la fonction sont appelées paramètres (un mot à connaître !).

Les fonctions ne servent qu'à faire des calculs mathématiques ? Je veux juste créer un site web, pas faire des maths !



J'ai choisi un exemple mathématique ici parce que je le trouve simple et parlant, mais dans la pratique on ne passe pas son temps à calculer des logarithmes et des exponentielles quand on crée un site web, je suis d'accord. 

Concrètement, les fonctions peuvent permettre de récupérer des informations comme la date et l'heure actuelles, de crypter des données, d'envoyer des e-mails, de faire des recherches dans du texte, et bien d'autres choses encore !


Les fonctions en PHP



Nous avons jusqu'ici imaginé le dialogue avec une fonction représentée par un robot, ce qui n'est pas très intéressant.
Revenons aux choses sérieuses et concrètes.

Appeler une fonction



En PHP, comment appelle-t-on une fonction ? Par son nom, pardi ! Par exemple :

Code : PHP

1

2

3

<?php

calculCube();

?>


La fonction calculCube est une fonction imaginaire : elle n'existe pas (à moins qu'on la crée nous-mêmes). Par conséquent, n'essayez pas d'exécuter ce code PHP chez vous car il ne fonctionnera pas. Lisez simplement pour bien comprendre le fonctionnement, vous aurez ensuite l'occasion de pratiquer plus loin dans ce chapitre.



Comme vous le voyez, j'ai simplement écrit le nom de la fonction, suivi de parenthèses vides, puis de l'inévitable point-virgule. En faisant cela, j'appelle la fonction calculCube mais je ne lui envoie aucune information, aucun paramètre.

Certaines fonctions peuvent fonctionner sans paramètres, mais elles sont assez rares. Dans le cas de calculCube, ça n'a pas de sens de l'appeler sans lui donner la longueur de l'arête du cube pour faire le calcul !

Si on veut lui envoyer un paramètre (un nombre, une chaîne de caractères, un booléen...), il faut l'écrire entre les parenthèses :

Code : PHP 

1

2

3

<?php

calculCube(4);

?>



Ainsi, calculCube saura qu'elle doit travailler avec le nombre 4.

Souvent, les fonctions acceptent plusieurs paramètres. Vous devez dans ce cas les séparer par des virgules :

Code : PHP 

1

2

3

<?php

fonctionImaginaire(17, 'Vert', true, 41.7);

?>



Cette fonction recevra quatre paramètres : 17, le texte « Vert », le booléen vrai et le nombre 41,7.

Récupérer la valeur de retour de la fonction



Maintenant que nous savons appeler une fonction et même lui envoyer plusieurs paramètres, il faut récupérer ce qu'elle nous retourne si toutefois elle retourne quelque chose. Il y a en effet deux types de fonctions :

  • celles qui ne retournent aucune valeur (ça ne les empêche pas d'effectuer des actions) ;
  • celles qui retournent une valeur.

Si la fonction ne retourne aucune valeur, il n'y a rien de plus à faire que dans les codes précédents. La fonction est appelée, fait son travail, et on ne lui demande rien de plus.

En revanche, si la fonction retourne une valeur (comme ça devrait être le cas pour calculCube), on la récupère dans une variable, comme ceci :

Code : PHP 

1

2

3

<?php

$volume = calculCube(4);

?>



Sur une ligne comme celle-ci, il se passe en fait les deux choses suivantes (dans l'ordre, et de droite à gauche) :

  1. la fonction calculCube est appelée avec le paramètre 4 ;
  2. le résultat renvoyé par la fonction (lorsqu'elle a terminé) est stocké dans la variable $volume.

La variable $volume aura donc pour valeur 64 après l'exécution de cette ligne de code !

Bon à savoir : comme on l'a vu, il est possible d'envoyer en entrée plusieurs paramètres à une fonction ; en revanche cette dernière ne peut retourner qu'une seule valeur. Il existe un moyen de contourner cette limitation en combinant des variables au sein d'un tableau de variables (appelé array) dont on parlera dans le prochain chapitre.

Créé avec HelpNDoc Personal Edition: Protégez vos PDF confidentiels avec ces mesures de sécurité simples