Objectifs
- Etre capable de créer des fonctions personnalisées en PHP
Définition
- Une fonction est un morceau de code permettant d'automatiser un traitement ou de donner un affichage particulier. Cela permet également de réutiliser un morceau de code à plusieurs reprises.
- Une fonction n'est rien d'autre qu'un "bloc d'instructions" qui effectue généralement une tâche spécifique et peut être utilisée à plusieurs reprises dans notre programme. Ce "bloc d'instructions" reçoit également un nom afin que chaque fois que nous voulons l'utiliser dans notre programme ou script, nous pouvons l'appeler par son nom, suivi de ces arguments.
- En plus des fonctions natives, PHP vous permet également de définir vos propres fonctions. C'est un moyen de créer des packages de code réutilisables qui effectuent des tâches spécifiques et peuvent être conservés et maintenus séparément du programme principal.
- En PHP, les fonctions utilisateur (ou fonctions définies par l'utilisateur) sont des blocs de code que vous pouvez créer pour effectuer des tâches spécifiques et les réutiliser dans votre script PHP. Elles permettent de simplifier la logique du code en le fractionnant en petits morceaux, ce qui facilite la maintenance, la lisibilité et la réutilisation du code.
Déclaration d’une fonction
- Pour déclarer une fonction, utilisez l’opérateur
functionet donnez lui un nom. - La syntaxe de base de la création d'une fonction personnalisée peut être donnée avec:
Syntaxe:

Règles à respecter:
- La déclaration d'une fonction définie par l'utilisateur :
- Commence par le mot
function, - Suivi du
nomde la fonction que vous souhaitez créer- Comme pour les variables un nom d'une fonction doit commencer par une lettre ou un caractère de soulignement et non par un chiffre, éventuellement suivi par les autres lettres, chiffres ou caractères de soulignement. Les noms de fonction ne sont pas sensibles à la casse.
- Suivi de parenthèses
() - placez enfin le code de votre fonction entre accolades
{}.
- Commence par le mot
- La déclaration d'une fonction définie par l'utilisateur :
Exemple:
<? php function addition($a, $b) { $resultat = $a + $b; return $resultat; } ?>
- Pour déclarer une fonction, utilisez l’opérateur
Appel de la fonction :
- Une fois que vous avez défini une fonction, vous pouvez l'appeler n'importe où dans votre script en utilisant son nom suivi de parenthèses. Si la fonction a des paramètres, vous devez leur passer des valeurs lors de l'appel. Par exemple :
<? php $resultat = addition(5, 3); echo $resultat; // Cela affichera 8 ?>Fonctions avec paramètres en Php
- Parfois, nous n'avons pas besoin d'une valeur unique pour tous nos paramètres ; à la place, nous pouvons utiliser une valeur spécifique si l'appel de fonction n'inclut pas cet argument. Pour spécifier un paramètre comme facultatif, attribuez-lui une valeur par défaut .
- Les paramètres fonctionnent comme des variables d'espace réservé dans une fonction;
- Les fonctions avec paramètres en PHP vous permettent de créer des fonctions qui acceptent des valeurs d'entrée (paramètres) pour effectuer des opérations sur ces valeurs et, éventuellement, renvoyer un résultat.
- Lorsqu'une fonction a plusieurs paramètres, vous devez les séparer à l'aide d'une virgule
( ,). - ils sont remplacés au moment de l'exécution par les valeurs (appelées argument) fournies à la fonction au moment de l'appel.
Un argument est une valeur que vous passez à une fonction et un paramètre est la variable de la fonction qui reçoit l'argument. Cependant, dans l'usage courant, ces termes sont interchangeables, c'est-à-dire qu'un argument est un paramètre est un argument.
Définition d'une fonction avec des paramètres :
- Pour définir une fonction avec des paramètres en PHP, vous spécifiez les paramètres entre parenthèses après le nom de la fonction. Vous pouvez avoir autant de paramètres que nécessaire, séparés par des virgules. Par exemple :
- Dans cet exemple, la fonction addition prend deux paramètres, $a et $b.
function addition($a, $b) { $resultat = $a + $b; return $resultat; }Appel de la fonction avec des paramètres :
En PHP, lors de la déclaration d'une fonction avec des paramètres par défaut, il y a une règle importante à respecter : les paramètres avec des valeurs par défaut doivent être définis après les paramètres sans valeur par défaut dans la liste des paramètres de la fonction.
$resultat = addition(5, 3); echo $resultat; // Cela affichera 8- Vous pouvez également passer des variables comme paramètres :
Utilisation des paramètres à l'intérieur de la fonction :
- À l'intérieur de la fonction, vous pouvez utiliser les paramètres comme des variables locales pour effectuer des opérations. Dans l'exemple de la fonction addition ci-dessus, nous utilisons les paramètres $a et $b pour effectuer une addition.
Retour de valeurs :
- Les fonctions avec des paramètres peuvent renvoyer des valeurs en utilisant l'instruction return. Par exemple :
function multiplication($a, $b) { $resultat = $a * $b; return $resultat; } $produit = multiplication(4, 5); echo $produit; // Cela affichera 20- Dans cet exemple, la fonction multiplication prend deux paramètres, effectue une multiplication et renvoie le résultat.
Activité
- Définir une fonction calculerMoyenne qui prend trois paramètres : $nombre1, $nombre2, et $nombre3.
- La fonction calcule la somme de ces nombres, puis divise cette somme par 3 pour obtenir la moyenne.
- Appeler la fonction calculerMoyenne avec trois ensembles de nombres différents et stocker les résultats dans les variables $moyenne1, $moyenne2 et $moyenne3.
- Utiliser des instructions echo pour afficher les résultats à l'écran.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <?php function calculerMoyenne($x, $y,$z){ $resultat=($x+$y+$z)/3; return $resultat; } $moyenne01=calculerMoyenne(10,14,18); $moyenne02=calculerMoyenne(11,20,12); $moyenne03=calculerMoyenne(10,10,11); echo"".$moyenne01."<br>"; echo "".$moyenne02."<br>"; echo "".$moyenne03."<br>"; ?> </body> </html>
$x = 10; $y = 20; $resultat = addition($x, $y); echo $resultat; // Cela affichera 30function maFonction ($unParameter, $autresParameter) { // Code à exécuter }Argument avec valeur par défaut en php:
- En PHP, vous pouvez définir des valeurs par défaut pour les arguments de fonction. Cela signifie que si un argument n'est pas fourni lors de l'appel de la fonction, la valeur par défaut sera utilisée à la place.
- Lorsque vous spécifiez un argument par défaut pour un paramètre, le paramètre devient facultatif. Cela signifie que vous pouvez transmettre une valeur ou l'ignorer.
- Les arguments par défaut doivent être des expressions constantes. Ils ne peuvent pas être des variables ou des appels de fonction.
- PHP vous permet d'utiliser une valeur scalaire, un tableau et nullcomme arguments par défaut.
Exemples:
Exemple 01:
<?php function exempleFonction($argument1, $argument2 = "Valeur par défaut") { echo "Argument 1 : $argument1
"; echo "Argument 2 : $argument2
"; } // Appels de la fonction avec un seul argument exempleFonction("Valeur 1"); // Appels de la fonction avec deux arguments exempleFonction("Valeur 1", "Valeur 2");?><?php function division($nb1,$nb2=10){ echo $nb1/$nb2; } division(2); ?>Exemple 02:
- Le troisième appel à
customFont()n'inclut pas le deuxième et le troisième argument. Cela oblige le moteur PHP à utiliser les valeurs par défaut du $size et $couleur qui sont 1,5 et 'blue'.
<?php // Defining function function customFont($font, $size=1.5,$couleur='blue'){ echo "<p style=\"font-family: $font; font-size: {$size}em; color:{$couleur}\"> Bonjour le monde!</p>"; } // Calling function customFont("Arial", 3,'red'); customFont("Times", 1,'green'); customFont("Courier"); ?>- Le troisième appel à
L'ordre des paramètres par défaut
- Lorsque vous utilisez des paramètres par défaut, il est recommandé de les placer après les paramètres qui n'ont pas de valeurs par défaut. Sinon, vous obtiendrez un comportement inattendu. Par exemple:
<?php function concat( $str1, $str2,$delimiter = ' ') { return $str1 . $delimiter . $str2; } $message = concat('Bonjour', ' à tous!', ','); echo $message; ?>Valeur nulle facultative
- Lorsqu'une variable est complètement facultative et ne nécessite aucune valeur, la valeur par défaut peut être définie comme null. La valeur
nullcontient de l'espace pour une valeur sans ajouter elle-même une valeur supplémentaire :
<?php function hello($nom, $salutation = "Bonjour", $ponctuation = null) { echo $salutation." ".$nom.$ponctuation; } hello("Sammy"); ?>- Lorsqu'une variable est complètement facultative et ne nécessite aucune valeur, la valeur par défaut peut être définie comme null. La valeur
Fonction PHP renvoyant des valeurs
- En PHP, les fonctions peuvent renvoyer des valeurs à l'endroit où elles ont été appelées à l'aide de l'instruction return. Les valeurs renvoyées peuvent être de n'importe quel type, que ce soit des entiers, des chaînes de caractères, des tableaux, des objets, etc.
Définition d'une fonction qui renvoie une valeur en php
- Pour définir une fonction qui renvoie une valeur, utilisez le mot-clé function, suivi du nom de la fonction, des paramètres éventuels entre parenthèses, et du bloc de code. À l'intérieur de la fonction, utilisez l'instruction
returnpour renvoyer une valeur. Par exemple : - Dans cet exemple, la fonction addition accepte deux paramètres, effectue une addition, puis renvoie le résultat.
function addition($a, $b) { $resultat = $a + $b; return $resultat; }- Pour définir une fonction qui renvoie une valeur, utilisez le mot-clé function, suivi du nom de la fonction, des paramètres éventuels entre parenthèses, et du bloc de code. À l'intérieur de la fonction, utilisez l'instruction
Appel de la fonction et utilisation de la valeur renvoyée :
- Lorsque vous appelez la fonction, vous pouvez stocker la valeur renvoyée dans une variable et l'utiliser comme bon vous semble. Par exemple :
- Vous pouvez également utiliser directement la valeur renvoyée dans une autre expression ou une instruction, sans la stocker dans une variable :
$sum = addition(5, 3); echo "La somme est : " . $sum; // Cela affichera "La somme est : 8"echo "La somme est : " . addition(5, 3); // Cela affichera "La somme est : 8"Retour d'une valeur
- Les fonctions peuvent même renvoyer des résultats. Lorsque nous avons des fonctions définies pour effectuer une opération mathématique, etc., nous souhaitons afficher le résultat de l'opération, nous renvoyons donc le résultat.
- L'instruction
returnest utilisée pour renvoyer n'importe quelle variable ou valeur d'une fonction en PHP.
Exemple:
function add($a, $b) { $sum = $a + $b; // returning the result return $sum; } echo "5 + 10 = " . add(5, 10) . ""; ?>Retour de plusieurs valeurs
- PHP n’offre pas la possibilité de retourner explicitement plusieurs variables à l’aide d’une syntaxe du type : return $a,$b,$c,...
- Pour pallier cet inconvénient, il suffit de retourner une variable de type array contenant autant de valeurs que désiré. Vous pourriez aussi envisager de retourner un objet doté de plusieurs propriétés, mais il serait quelque peu fastidieux de créer une classe et des objets spécialement pour la circonstance si la création d’objets ne faisait pas partie de la conception générale du script.
- En PHP, vous pouvez renvoyer plusieurs valeurs d'une fonction en utilisant un tableau (array) ou un objet. Voici comment vous pouvez faire cela :
-
Utilisation d'un tableau (array) :
-
Utilisation d'un objet (si la création d'objets est prévue dans la conception) :
function obtenirInfos() { $nom = "Doe"; $prenom = "John"; $age = 30; // Créer un tableau contenant les valeurs à retourner $infos = array( "nom" => $nom, "prenom" => $prenom, "age" => $age ); return $infos; } $resultat = obtenirInfos(); echo "Nom : " . $resultat["nom"] . "<br>"; echo "Prénom : " . $resultat["prenom"] . "<br>"; echo "Âge : " . $resultat["age"] . "<br>";class Informations { public $nom; public $prenom; public $age; } function obtenirInfos() { $info = new Informations(); $info->nom = "Doe"; $info->prenom = "John"; $info->age = 30; return $info; } $resultat = obtenirInfos(); echo "Nom : " . $resultat->nom . "<br>"; echo "Prénom : " . $resultat->prenom . "<br>"; echo "Âge : " . $resultat->age . "<br>"; -
Avantages des fonctions définies par l'utilisateur
- Voici quelques avantages de l'utilisation des fonctions pour vous:
Code réutilisable :
- Vous écrivez une fonction une fois et vous pouvez l'utiliser mille fois dans votre programme.
- La fonction vous permet d'extraire le bloc de code couramment utilisé en un seul composant.
- Vous pouvez maintenant effectuer la même tâche en appelant cette fonction où vous le souhaitez dans votre script sans avoir à copier et coller le même bloc de code encore et encore.
Moins de répétition de code :
- Dans l'exemple ci-dessus, nous n'avions qu'une seule ligne de code dans la fonction, mais que se passe-t-il si nous avons 10 lignes de code. Donc, plutôt que de répéter toutes ces lignes de code encore et encore, nous pouvons simplement créer une fonction pour eux et appeler simplement la fonction.
Facile à comprendre :
- L'utilisation des fonctions de votre programme rend le code plus lisible et plus facile à comprendre.
- Puisqu'une fonction créée une fois peut être utilisée plusieurs fois, toutes les modifications apportées à l'intérieur d'une fonction sont automatiquement implémentées à tous les endroits sans toucher les plusieurs fichiers.
Moins des erreurs :
- Lorsque le programme est subdivisé en fonctions, si une erreur se produit, vous savez exactement quelle fonction est à l'origine de l'erreur et où la trouver
- La correction des erreurs devient beaucoup plus facile.
- Voici quelques avantages de l'utilisation des fonctions pour vous:
Applications
App01
- Créez une fonction VolumeCone qui sert à calculer le 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. Il faut connaître la formule pour calculer le volume d'un cône. Le calcul à faire pour trouver le volume est :

rayon * rayon * 3.14 * hauteur * (1/3).<? // 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 !
<? // 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"; ?>App02
- Prenons le contexte d'un site e-commerce qui aura besoin d'ajouter la TVA de 19% sur ses produits.
- Déclarons notre première fonction pour calculer le prix TTC d'un produit qui coute 244 DT HTVA
Solution
<?php function calculerTTC($PrixHT,$TauxTVA=19) { $PrixTTC= $PrixHT*(1 + ($TauxTVA/100) ); return $PrixTTC; } //PrixTTC = PrixHT*(1 + TauxTVA ); $TTC=calculerTTC(244); echo "Le prix TTC est :".$TTC; ?>App03
- Le site e-commerce (que nous avons pris comme sujet) ne vendra pas que des produits à qui ont un taux de TVA de 19%, mais à d'autres produits qui ont un taux de 12% de 6% etc...
- Nous allons améliorer notre fonction afin de pouvoir effectuer tous les calculs et non pas que sur un TVA fixe de 19%.
- Pour cela nous allons avoir besoin d'un argument entrant (le TVA, ici appelée $tva) et l'argument $prix
App04
- Écrivez une fonction Php pour trouver le maximum de trois nombres (n'utilisez pas max).
<?php // Defining function function maximum($a, $b,$c){ $max=0; if($a>$b) $max=$a; else $max=$b; if ($c>$max) $max=$c; return $max; } echo maximum(19,14,8) ; ?>App05
Enoncé
- Écrivez une fonction calculerStatistiques en PHP qui accepte un tableau de nombres en entrée. La fonction doit renvoyer un tableau associatif contenant trois valeurs : la somme de tous les nombres, la moyenne des nombres et le produit de tous les nombres.
Solution
function calculerStatistiques($nombres) { $resultats = array( 'somme' => 0, 'moyenne' => 0, 'produit' => 1 ); if (count($nombres) > 0) { // Calculer la somme $resultats['somme'] = array_sum($nombres); // Calculer la moyenne $resultats['moyenne'] = $resultats['somme'] / count($nombres); // Calculer le produit foreach ($nombres as $nombre) { $resultats['produit'] *= $nombre; } } return $resultats; } // Exemple d'utilisation : $nombres = [5, 10, 15, 20]; $resultats = calculerStatistiques($nombres); // Afficher la somme, la moyenne et le produit echo "Somme : " . $resultats['somme'] . "<br>"; echo "Moyenne : " . $resultats['moyenne'] . "<br>"; echo "Produit : " . $resultats['produit'] . "<br>";