Leçon 6 / 12
Leçon 06 · Partie 1 — Les fondamentaux

Fonctions

Pourquoi créer des fonctions ?

Si tu as du code qui revient souvent — formater un prix, vérifier un email — tu peux le mettre dans une fonction et l'appeler autant de fois que besoin.

Avantages :

  • Pas de répétition : code écrit une seule fois.
  • Facile à modifier : change la fonction, tout le site est mis à jour.
  • Lisibilité : le code principal reste court et clair.

Définir une fonction

Utilise le mot-clé function, suivi du nom et du code entre accolades.

PHP
// Définir la fonction (on lui donne un nom et un corps)
function direBonjour() {
    echo "Bonjour !";
}

// Appeler la fonction (déclencher son exécution)
direBonjour(); // Bonjour !
direBonjour(); // Bonjour !
direBonjour(); // Bonjour !

Définir vs appeler :

  • function direBonjour() { ... } — crée la fonction. Rien ne s'exécute encore.
  • direBonjour(); — exécute la fonction.

Tu peux appeler la même fonction autant de fois que tu veux.

Les paramètres — personnaliser la fonction

Sans paramètres, la fonction fait toujours la même chose. Avec des paramètres, tu lui passes des valeurs qui changent le résultat.

PHP
// La fonction attend un paramètre : $prenom
function saluer($prenom) {
    echo "Bonjour, $prenom !";
}

// On lui passe des valeurs différentes à chaque appel
saluer("Marie");  // Bonjour, Marie !
saluer("Thomas"); // Bonjour, Thomas !

$prenom est le paramètre. Il prend la valeur passée à l'appel ("Marie", puis "Thomas"). C'est une variable locale.

Plusieurs paramètres possibles :

PHP
function presenter($prenom, $age, $ville) {
    echo "Je m'appelle $prenom, j'ai $age ans et j'habite à $ville.";
}

presenter("Marie", 28, "Paris");
// Je m'appelle Marie, j'ai 28 ans et j'habite à Paris.

Les valeurs passées doivent être dans le même ordre que les paramètres définis.

Valeurs par défaut

Un paramètre peut avoir une valeur par défaut. Si on ne passe rien, PHP utilise cette valeur.

PHP
function saluer($prenom = "visiteur") {
    echo "Bonjour, $prenom !";
}

saluer("Marie"); // Bonjour, Marie !
saluer();         // Bonjour, visiteur !  ← valeur par défaut utilisée

Utilisateur connecté ? On passe le prénom. Pas connecté ? La fonction dit quand même quelque chose.

return — récupérer un résultat

Nos fonctions affichaient directement. Mais souvent, on veut qu'une fonction calcule quelque chose et renvoie le résultat pour l'utiliser ailleurs.

echo dans une fonction = affiche immédiatement. return = renvoie la valeur pour qu'on en fasse ce qu'on veut.

PHP
function additionner($a, $b) {
    return $a + $b;  // renvoie le résultat, ne l'affiche pas
}

// On peut stocker le résultat dans une variable
$resultat = additionner(3, 7);
echo $resultat; // 10

// Ou l'utiliser directement dans une expression
echo additionner(5, 5) * 2; // 20

// Ou l'intégrer dans du texte
echo "La somme est : " . additionner(4, 6);

Avec return, la fonction s'arrête et renvoie la valeur. Tu peux l'afficher, la stocker, la multiplier, la passer ailleurs...

Sans return, la fonction retourne null. Si tu t'attends à un résultat et qu'il ne vient pas, vérifie que tu n'as pas oublié return.

La portée des variables — l'isolement des fonctions

Les fonctions vivent dans leur propre bulle. Une variable créée dehors n'existe pas dedans, et vice versa. C'est la portée (scope).

PHP
$message = "Bonjour"; // variable définie en dehors

function tester() {
    // $message n'est pas accessible ici !
    echo $message; // Avertissement : variable indéfinie
}

tester(); // Rien — $message est inaccessible dans la fonction

Solution : passer la valeur en paramètre.

PHP
$message = "Bonjour";

function afficher($texte) {
    echo $texte; // ça fonctionne, car on l'a passé en paramètre
}

afficher($message); // Bonjour
💡

PHP a global pour accéder aux variables extérieures, mais c'est une mauvaise pratique. Toujours passer les valeurs en paramètre — code plus propre, plus facile à déboguer.

Cas pratique : formater un prix

Exemple concret : formater un prix. Au lieu de répéter le code partout, une fonction fait le travail.

PHP
function formatPrix($prix, $devise = "€") {
    // number_format : 2 décimales, virgule pour les centimes, espace pour les milliers
    return number_format($prix, 2, ",", " ") . " $devise";
}

echo formatPrix(1234.5);    // 1 234,50 €
echo formatPrix(99.9, "$"); // 99,90 $
echo formatPrix(7);          // 7,00 €
Résultat
1 234,50 €
99,90 $
7,00 €

Partout dans la boutique, appelle juste formatPrix($prix). Tu veux changer le format ? Modifie la fonction une fois. Tout le site est mis à jour.

// À retenir
  • function nom() { } pour définir une fonction — elle n'est pas encore exécutée
  • nom(); pour appeler (exécuter) une fonction
  • Les paramètres permettent de passer des valeurs à la fonction
  • Les valeurs par défaut s'appliquent si on n'en passe pas
  • return renvoie une valeur qu'on peut utiliser ailleurs — sans return, la fonction retourne null
  • Les variables dans une fonction sont locales — elles n'existent pas à l'extérieur
  • Passe toujours les données dont la fonction a besoin via les paramètres