Les fonctions permettent de simplifier et de structurer le code en regroupant des actions répétitives dans un bloc unique. Ainsi, vous pouvez appeler ce bloc plusieurs fois sans dupliquer le code. Voici comment on peut simplifier notre exemple précédent grâce à une fonction.
Exemple sans fonction (répétitif)
Voici un code où on compare plusieurs paires de nombres :
<?php
$a = 10;
$b = 20;
if ($a > $b) {
echo "a est plus grand que b";
} elseif ($a == $b) {
echo "a est égal à b";
} else {
echo "a est plus petit que b";
}
?>
<br><br>
<?php
$a = 20;
$b = 20;
if ($a > $b) {
echo "a est plus grand que b";
} elseif ($a == $b) {
echo "a est égal à b";
} else {
echo "a est plus petit que b";
}
?>
<br><br>
<?php
$a = 100;
$b = 30;
if ($a > $b) {
echo "a est plus grand que b";
} elseif ($a == $b) {
echo "a est égal à b";
} else {
echo "a est plus petit que b";
}
?>Problème : ce code répète trois fois la même logique, ce qui le rend moins efficace et plus difficile à maintenir.
Simplification avec une fonction
En utilisant une fonction, on peut regrouper la logique de comparaison en un seul endroit et simplement l’appeler avec les valeurs nécessaires.
<?php
// Création de la fonction
function comparer($a, $b) {
if ($a > $b) {
echo "a est plus grand que b";
} elseif ($a == $b) {
echo "a est égal à b";
} else {
echo "a est plus petit que b";
}
echo "<br><br>"; // Ajouter un saut de ligne entre les résultats
}
// Appels de la fonction avec différentes paires de valeurs
comparer(10, 20); // Résultat attendu : a est plus petit que b
comparer(20, 20); // Résultat attendu : a est égal à b
comparer(100, 30); // Résultat attendu : a est plus grand que b
?>Étape par étape
- Créer la fonction :
La fonctioncomparercontient la logique de comparaison (conditionsif,elseif,else). Elle accepte deux paramètres :$aet$b. - Appeler la fonction :
On utilise simplementcomparer(valeur1, valeur2)pour tester différentes paires de nombres. - Résultat :
Quand vous exécutez le code, vous obtenez :cssCopier le codea est plus petit que b a est égal à b a est plus grand que b
Avantages d’une fonction
- Lisibilité : le code est plus clair et plus court.
- Réutilisation : la fonction peut être appelée autant de fois que nécessaire.
- Maintenance facile : si vous devez modifier la logique, vous n’avez qu’à changer la fonction, pas tous les endroits où elle est utilisée.
Le nom d’une fonction en PHP peut être remplacé par n’importe quel autre nom valide. En réalité, ce nom est juste une étiquette qui permet de faire référence à cette fonction dans votre code. L’important est qu’il soit logique, descriptif, et qu’il respecte certaines règles de nommage.
Exemple
Dans l’exemple précédent, nous avons nommé la fonction comparer car son rôle est de comparer deux valeurs. Cependant, vous pourriez l’appeler autrement, comme :
<?php
// On renomme la fonction
function verifierComparaison($a, $b) {
if ($a > $b) {
echo "a est plus grand que b";
} elseif ($a == $b) {
echo "a est égal à b";
} else {
echo "a est plus petit que b";
}
echo "<br><br>";
}
// Appels de la fonction
verifierComparaison(10, 20);
verifierComparaison(20, 20);
verifierComparaison(100, 30);
?>Résultat
Le résultat sera exactement le même, car seul le nom de la fonction a changé.
Quelques points importants pour les noms de fonction
- Un nom explicite : choisissez un nom qui décrit bien ce que fait la fonction. Par exemple,
verifierComparaisonest plus explicite que quelque chose de vague commetest1. - Respecter les règles de PHP :
- Un nom doit commencer par une lettre ou un underscore (
_). - Il ne doit pas contenir d’espaces ni de caractères spéciaux (comme
$,@, etc.). - Exemple de noms valides :
calculerTotal,afficherResultat,_monTest.
- Un nom doit commencer par une lettre ou un underscore (
- Pas de mots réservés : évitez d’utiliser un mot réservé par PHP comme nom de fonction, par exemple
if,else, ouecho.
Pourquoi le nom peut être remplacé ?
Le nom de la fonction est juste un identifiant, une sorte d’étiquette. PHP se moque du nom tant que vous suivez les règles ci-dessus. Ce qui compte, c’est que ce nom soit utilisé de manière cohérente dans votre code : si vous appelez votre fonction verifierComparaison, vous devrez l’utiliser comme ceci :
verifierComparaison(10, 20);
Changer le nom de la fonction ne change pas ce qu’elle fait, mais choisir un bon nom rend votre code plus facile à comprendre et à maintenir, surtout si vous travaillez en équipe ou revenez sur votre code plus tard.
Astuce pédagogique
Amusez-vous à changer le nom de la fonction pour voir que son comportement reste le même. Par exemple, essayez des noms comme :
compareValeurs(10, 20);
testerValeurs(20, 20);
checkNumbers(100, 30);L’objectif est de comprendre que c’est vous qui choisissez les noms pour rendre votre code clair et compréhensible !
Pour aller plus loin
Exemple avec des variables
<?php
// Déclaration de la fonction
function verifierComparaison($a, $b) {
if ($a > $b) {
echo "a est plus grand que b";
} elseif ($a == $b) {
echo "a est égal à b";
} else {
echo "a est plus petit que b";
}
echo "<br><br>";
}
// Déclaration des variables
$valeur1 = 15;
$valeur2 = 25;
// Appels de la fonction avec les variables
verifierComparaison($valeur1, $valeur2); // Compare $valeur1 et $valeur2
// On peut changer les valeurs des variables et comparer à nouveau
$valeur1 = 50;
$valeur2 = 50;
verifierComparaison($valeur1, $valeur2);
$valeur1 = 100;
$valeur2 = 30;
verifierComparaison($valeur1, $valeur2);
?>Explications
- Déclarer des variables :
$valeur1et$valeur2contiennent les valeurs que vous souhaitez comparer.- Ces variables peuvent être modifiées à tout moment dans le code pour tester d’autres valeurs.
- Passer les variables dans la fonction :
- La fonction
verifierComparaison($a, $b)utilise les valeurs contenues dans$valeur1et$valeur2. - L’ordre des arguments est important :
$aprendra la valeur de$valeur1, et$bprendra celle de$valeur2.
- La fonction
Résultat attendu
Quand ce code est exécuté, vous verrez :
a est plus petit que b
a est égal à b
a est plus grand que b
Avantages de cette approche
- Flexibilité : vous pouvez comparer différentes valeurs sans modifier la fonction.
- Lisibilité : utiliser des noms de variables comme
$valeur1et$valeur2peut rendre votre code plus compréhensible. - Réutilisation : les variables peuvent provenir de différentes parties de votre programme, comme des entrées utilisateur ou des calculs.
Cette méthode est très pratique lorsque les valeurs à comparer changent dynamiquement dans votre programme.
Exemple avec la valeur des variables
Voici comment adapter la fonction pour afficher les valeurs réelles :
<?php
// Déclaration de la fonction
function verifierComparaison($a, $b) {
if ($a > $b) {
echo "$a est plus grand que $b";
} elseif ($a == $b) {
echo "$a est égal à $b";
} else {
echo "$a est plus petit que $b";
}
echo "<br><br>"; // Saut de ligne pour la lisibilité
}
// Déclaration des variables
$valeur1 = 15;
$valeur2 = 25;
// Appels de la fonction avec les variables
verifierComparaison($valeur1, $valeur2); // Compare $valeur1 et $valeur2
// On peut changer les valeurs des variables et comparer à nouveau
$valeur1 = 50;
$valeur2 = 50;
verifierComparaison($valeur1, $valeur2);
$valeur1 = 100;
$valeur2 = 30;
verifierComparaison($valeur1, $valeur2);
?>Explications
- Interpolation de chaînes :
- En PHP, les guillemets doubles (
") permettent d’insérer directement les valeurs des variables dans une chaîne. - Exemple :
"$a est plus grand que $b"affiche la valeur de$aet$b.
- En PHP, les guillemets doubles (
- Concaténation (option alternative) :
- Vous pouvez aussi utiliser le point (
.) pour assembler des chaînes de caractères : echo $a . " est plus grand que " . $b;
- Vous pouvez aussi utiliser le point (
- Affichage dynamique :
- Le message s’adapte automatiquement aux valeurs réelles des variables passées en paramètres.
Résultat attendu
Avec les valeurs données, le navigateur affichera :
15 est plus petit que 25
50 est égal à 50
100 est plus grand que 30
Avantages
- Les messages sont plus clairs et parlants, car ils affichent les valeurs comparées.
- Le code reste simple à lire et à modifier.
Cela rend votre fonction encore plus utile pour des cas pratiques où vous voulez voir les résultats des comparaisons directement.