Leçon 3/6 7 min

Fonctions et boucles

Créez des blocs de code réutilisables avec les fonctions PHP, les boucles for/foreach et les fonctions natives.

Déclarer une fonction

Une fonction est un bloc de code réutilisable. Au lieu de répéter le même code, vous l'appelez par son nom :

function saluer($nom) {
    return "Bonjour, $nom !";
}

echo saluer("Alice");  // → Bonjour, Alice !
echo saluer("Bob");    // → Bonjour, Bob !

Anatomie :

  • function — le mot-clé pour déclarer
  • $nom — le paramètre (l'entrée)
  • return — la valeur renvoyée (la sortie)

Paramètres et valeurs par défaut

function calculerPrix($prix, $tva = 0.20) {
    return $prix * (1 + $tva);
}

echo calculerPrix(100);        // → 120 (TVA par défaut : 20%)
echo calculerPrix(100, 0.055); // → 105.5 (TVA réduite : 5.5%)

Le paramètre $tva a une valeur par défaut de 0.20. Si on ne le passe pas, PHP utilise cette valeur.

Fonctions natives utiles

PHP a des centaines de fonctions intégrées. Voici les plus courantes :

// Chaînes
echo strlen("Bonjour");            // → 7 (longueur)
echo strtolower("ALICE");          // → alice
echo strtoupper("alice");          // → ALICE
echo str_replace("monde", "PHP", "Bonjour monde"); // → Bonjour PHP
echo trim("  hello  ");           // → "hello" (supprime espaces)
echo substr("Bonjour", 0, 3);     // → Bon

// Nombres
echo number_format(1234567.89, 2, ',', ' '); // → 1 234 567,89
echo round(3.7);   // → 4
echo ceil(3.2);    // → 4
echo floor(3.9);   // → 3

// Date
echo date("d/m/Y");        // → 27/05/2026
echo date("H:i");          // → 14:30
echo date("l");            // → Tuesday

Boucles : for, while, foreach

// for — quand on connaît le nombre d'itérations
for ($i = 1; $i <= 5; $i++) {
    echo "<p>Ligne $i</p>";
}

// while — tant qu'une condition est vraie
$compteur = 0;
while ($compteur < 3) {
    echo $compteur . " ";
    $compteur++;
}
// → 0 1 2

// foreach — pour parcourir un tableau (le plus utilisé)
$langages = ["PHP", "JavaScript", "Python"];
foreach ($langages as $langage) {
    echo "<li>$langage</li>";
}

// foreach avec clé et valeur
$prix = ["pain" => 1.20, "lait" => 0.95];
foreach ($prix as $produit => $montant) {
    echo "$produit : {$montant}€ <br>";
}

L'expression match (PHP 8)

PHP 8 a introduit match, une alternative plus élégante au switch :

$status = "published";

$label = match($status) {
    'draft'     => 'Brouillon',
    'published' => 'Publié',
    'archived'  => 'Archivé',
    default     => 'Inconnu',
};

echo $label;  // → Publié

Avantages de match : pas de break nécessaire, comparaison stricte (===), et c'est une expression (on peut l'assigner à une variable).

Declaring a function

A function is a reusable code block. Instead of repeating the same code, you call it by name:

function greet($name) {
    return "Hello, $name!";
}

echo greet("Alice");  // → Hello, Alice!
echo greet("Bob");    // → Hello, Bob!

Anatomy:

  • function — the keyword to declare
  • $name — the parameter (input)
  • return — the returned value (output)

Parameters and default values

function calculatePrice($price, $vat = 0.20) {
    return $price * (1 + $vat);
}

echo calculatePrice(100);        // → 120 (default VAT: 20%)
echo calculatePrice(100, 0.055); // → 105.5 (reduced VAT: 5.5%)

The $vat parameter has a default value of 0.20. If not passed, PHP uses this value.

Useful built-in functions

PHP has hundreds of built-in functions. Here are the most common:

// Strings
echo strlen("Hello");             // → 5 (length)
echo strtolower("ALICE");         // → alice
echo strtoupper("alice");         // → ALICE
echo str_replace("world", "PHP", "Hello world"); // → Hello PHP
echo trim("  hello  ");          // → "hello" (removes spaces)
echo substr("Hello", 0, 3);      // → Hel

// Numbers
echo number_format(1234567.89, 2, '.', ','); // → 1,234,567.89
echo round(3.7);   // → 4
echo ceil(3.2);    // → 4
echo floor(3.9);   // → 3

// Date
echo date("d/m/Y");        // → 27/05/2026
echo date("H:i");          // → 14:30
echo date("l");            // → Tuesday

Loops: for, while, foreach

// for — when you know the number of iterations
for ($i = 1; $i <= 5; $i++) {
    echo "<p>Line $i</p>";
}

// while — as long as a condition is true
$counter = 0;
while ($counter < 3) {
    echo $counter . " ";
    $counter++;
}
// → 0 1 2

// foreach — to loop through arrays (most used)
$languages = ["PHP", "JavaScript", "Python"];
foreach ($languages as $language) {
    echo "<li>$language</li>";
}

// foreach with key and value
$prices = ["bread" => 1.20, "milk" => 0.95];
foreach ($prices as $product => $amount) {
    echo "$product: \${$amount} <br>";
}

The match expression (PHP 8)

PHP 8 introduced match, a more elegant alternative to switch:

$status = "published";

$label = match($status) {
    'draft'     => 'Draft',
    'published' => 'Published',
    'archived'  => 'Archived',
    default     => 'Unknown',
};

echo $label;  // → Published

Advantages of match: no break needed, strict comparison (===), and it's an expression (you can assign it to a variable).

PHP → Résultat HTML
Avec l'IA

Copiez ce prompt dans Claude ou ChatGPT :

Écris une fonction PHP qui prend un tableau de notes (0 à 20) et renvoie la moyenne, la note la plus haute et la plus basse. Utilise les fonctions natives array_sum, count, min, max.
Comment déclarer une fonction en PHP ?
Quelle boucle est la plus utilisée pour parcourir un tableau en PHP ?
Que renvoie strlen("PHP") ?
Besoin d'un développeur pour votre projet ?

Réponse sous 24h — Sans engagement