Les fonctions utilisateur en PHP
Les fonctions utilisateur en PHP
-
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
function
et 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
nom
de 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
{}
. -
Exemple:
-
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 :
-
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.
-
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.
-
Appel de la fonction avec des paramètres :
- 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 :
- 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.
<? php
function addition($a, $b) {
$resultat = $a + $b;
return $resultat;
}
?>
<? php
$resultat = addition(5, 3);
echo $resultat; // Cela affichera 8
?>
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.
function addition($a, $b) {
$resultat = $a + $b;
return $resultat;
}
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
$x = 10;
$y = 20;
$resultat = addition($x, $y);
echo $resultat; // Cela affichera 30
function multiplication($a, $b) {
$resultat = $a * $b;
return $resultat;
}
$produit = multiplication(4, 5);
echo $produit; // Cela affichera 20
function maFonction ($unParameter, $autresParameter) {
// Code à exécuter
}
<!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>
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:
-
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’. -
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:
-
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
null
contient de l’espace pour une valeur sans ajouter elle-même une valeur supplémentaire :
<?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);
?>
<?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");
?>
<?php
function concat( $str1, $str2,$delimiter = ' ')
{
return $str1 . $delimiter . $str2;
}
$message = concat('Bonjour', ' à tous!', ',');
echo $message;
?>
<?php
function hello($nom, $salutation = "Bonjour", $ponctuation = null) {
echo $salutation." ".$nom.$ponctuation;
}
hello("Sammy");
?>
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
return
pour renvoyer une valeur. Par exemple : - Dans cet exemple, la fonction addition accepte deux paramètres, effectue une addition, puis renvoie le résultat.
-
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 :
-
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
return
est utilisée pour renvoyer n’importe quelle variable ou valeur d’une fonction en PHP. -
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 addition($a, $b) {
$resultat = $a + $b;
return $resultat;
}
$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"
Exemple:
function add($a, $b)
{
$sum = $a + $b;
// returning the result
return $sum;
}
echo "5 + 10 = " . add(5, 10) . "";
?>
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.
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.
-
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
-
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).
-
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.
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";
?>
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;
?>
<?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) ;
?>
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>";