Chapitre 2Projet DevBlog

PHP — Structures de contrôle et fonctions

Conditions, boucles, fonctions typées et fonctions natives

Concepts Théoriques

Les structures de contrôle (conditions, boucles) et les fonctions sont les briques fondamentales de toute logique de programmation. Elles permettent à votre code de prendre des décisions et de répéter des actions.

Les conditions — if / elseif / else

La structure de base :

if (condition) { /* code si vrai / } elseif (autreCondition) { / code si la première est fausse mais celle-ci est vraie / } else { / code si toutes les conditions sont fausses */ }

En PHP, il existe une syntaxe alternative plus lisible dans les templates HTML — au lieu des accolades, on utilise les deux-points et endif :

<?php if ($isPublished): ?> (HTML affiché si vrai) <?php else: ?> (HTML affiché si faux) <?php endif; ?>

Cette syntaxe est fortement recommandée quand vous mélangez PHP et HTML. Elle est bien plus lisible que les accolades quand le HTML est entre les blocs PHP.

Le switch

Quand vous comparez une variable à plusieurs valeurs possibles :

switch ($category) { case 'tutoriel': /* ... / break; case 'actualité': / ... / break; default: / ... */ }

En PHP 8+, l'expression match remplace souvent le switch (plus concise, comparaison stricte, retourne une valeur) :

$label = match($category) { 'tutoriel' => 'Tutoriel', 'actualite' => 'Actualité', 'opinion' => 'Opinion', default => 'Autre' };

Les boucles

for — quand vous connaissez le nombre d'itérations : for ($i = 0; $i < 10; $i++) { /* ... */ }

foreach — pour parcourir un tableau (LE plus utilisé en PHP) : foreach ($articles as $article) { /* ... */ }

Avec la clé : foreach ($articles as $index => $article) { /* ... */ }

while — tant qu'une condition est vraie : while ($row = $stmt->fetch()) { /* ... */ }

Dans les templates HTML, la syntaxe alternative est aussi disponible pour foreach :

<?php foreach ($articles as $article): ?> (HTML répété pour chaque article) <?php endforeach; ?>

Les fonctions

Une fonction est un bloc de code réutilisable avec un nom :

function calculateReadTime(string $content): int { $wordCount = str_word_count($content); return (int) ceil($wordCount / 200); }

Paramètres typés (PHP 7+) — vous pouvez déclarer les types des paramètres et du retour. Ce n'est pas obligatoire mais c'est une bonne pratique qui prévient les bugs :

  • string, int, float, bool, array — types de base
  • ?string — nullable (accepte string ou null)
  • void — la fonction ne retourne rien

Valeurs par défaut — un paramètre peut avoir une valeur par défaut : function getArticles(int $limit = 10): array { /* ... */ }

Portée des variables — une variable déclarée DANS une fonction n'existe que dans cette fonction. Une variable déclarée en dehors n'est PAS accessible dans la fonction (contrairement à JavaScript). Pour y accéder, passez-la en paramètre.

Fonctions natives utiles

PHP a des centaines de fonctions intégrées. Les plus utilisées :

Dates :

  • date('Y-m-d') — date actuelle formatée (2026-03-21)
  • date('d/m/Y H:i') — date avec heure (21/03/2026 14:30)
  • time() — timestamp Unix actuel
  • strtotime('2026-03-21') — convertit une string en timestamp

Strings :

  • strlen(), strtolower(), strtoupper(), trim()
  • str_replace(), substr(), strpos()
  • nl2br() — convertit les retours à la ligne en <br>
  • htmlspecialchars() — échappe le HTML (sécurité XSS)
  • str_word_count() — compte les mots

Nombres :

  • round(), ceil(), floor()
  • rand(), mt_rand()
  • number_format(1234.5, 2, ',', ' ') — "1 234,50"

> Bonne pratique : Typez toujours vos fonctions (paramètres + retour). C'est ce que Laravel fait systématiquement. Ça rend le code plus sûr et auto-documenté.