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

  1. Créer la fonction :
    La fonction comparer contient la logique de comparaison (conditions if, elseif, else). Elle accepte deux paramètres : $a et $b.
  2. Appeler la fonction :
    On utilise simplement comparer(valeur1, valeur2) pour tester différentes paires de nombres.
  3. 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

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

  1. Un nom explicite : choisissez un nom qui décrit bien ce que fait la fonction. Par exemple, verifierComparaison est plus explicite que quelque chose de vague comme test1.
  2. 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.
  3. Pas de mots réservés : évitez d’utiliser un mot réservé par PHP comme nom de fonction, par exemple if, else, ou echo.

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

  1. Déclarer des variables :
    • $valeur1 et $valeur2 contiennent les valeurs que vous souhaitez comparer.
    • Ces variables peuvent être modifiées à tout moment dans le code pour tester d’autres valeurs.
  2. Passer les variables dans la fonction :
    • La fonction verifierComparaison($a, $b) utilise les valeurs contenues dans $valeur1 et $valeur2.
    • L’ordre des arguments est important : $a prendra la valeur de $valeur1, et $b prendra celle de $valeur2.

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

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

  1. 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 $a et $b.
  2. 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;
  3. 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

Cela rend votre fonction encore plus utile pour des cas pratiques où vous voulez voir les résultats des comparaisons directement.