PHP : le guide complet pour débuter en 2026
PHP propulse une part immense du web : des blogs personnels aux plateformes de commerce en ligne, en passant par des CMS utilisés par des millions de sites. Longtemps caricaturé, le langage a profondément changé avec ses versions 8.x : typage renforcé, performances solides, syntaxe moderne. Ce guide vous accompagne de l’installation aux fondamentaux, jusqu’à l’écosystème professionnel — un point de départ complet pour écrire du PHP propre dès aujourd’hui.
Pourquoi apprendre PHP en 2026 ?
PHP reste un choix pertinent pour qui veut construire des applications web côté serveur. Trois raisons expliquent sa longévité :
- Omniprésence : une grande partie des sites web mondiaux tourne sous PHP, notamment via WordPress. La demande en maintenance et développement reste forte.
- Courbe d’apprentissage douce : on obtient une page dynamique en quelques lignes, sans configuration lourde.
- Écosystème mûr : Composer, Symfony, Laravel, PHPUnit… l’outillage professionnel est riche et bien documenté.
Le langage est spécialisé : il excelle à générer des pages et des API côté serveur, à dialoguer avec une base de données et à traiter des formulaires. C’est exactement le terrain sur lequel nous allons avancer.
Installer PHP
Le plus simple pour démarrer est d’installer un environnement local. Sur Windows, macOS ou Linux, la façon la plus rapide reste d’utiliser PHP en ligne de commande. Vérifiez d’abord si PHP est déjà présent :
php --version
Si la commande échoue, installez PHP via le gestionnaire de paquets de votre système (par exemple apt, brew) ou via un pack tout-en-un comme XAMPP ou Laragon qui embarque aussi un serveur et une base de données. Pour un simple apprentissage, PHP intègre un serveur web de développement :
php -S localhost:8000
Placez un fichier index.php dans le dossier courant, ouvrez http://localhost:8000 et vous verrez votre page. Pour éditer, VS Code avec l’extension PHP Intelephense offre autocomplétion et détection d’erreurs sans configuration complexe.
Votre première page dynamique
Un fichier PHP est du HTML dans lequel on intercale du code entre les balises <?php ?>. Créez index.php :
<!DOCTYPE html>
<html lang="fr">
<body>
<h1>
<?php
$heure = (int) date('H');
echo $heure < 18 ? "Bonjour" : "Bonsoir";
?>
</h1>
</body>
</html>
Le serveur exécute le PHP et envoie au navigateur du HTML pur : l’utilisateur ne voit jamais votre code source. C’est le principe fondamental d’un langage côté serveur.
Variables, types et opérateurs
En PHP, une variable commence par $ et n’a pas besoin d’être déclarée à l’avance. Le langage est à typage dynamique, mais connaître les types reste essentiel.
<?php
$age = 30; // int
$prix = 19.90; // float
$nom = "Coder Studio"; // string
$actif = true; // bool
$panier = ["pain", "lait", "œufs"]; // array indexé
$profil = ["nom" => "Léa", "age" => 28]; // array associatif
Le tableau (array) est la structure la plus polyvalente du langage : il sert à la fois de liste et de dictionnaire clé-valeur. La concaténation de chaînes se fait avec le point, et l’interpolation fonctionne dans les guillemets doubles :
<?php
$nom = "Léa";
echo "Bonjour " . $nom; // concaténation
echo "Bonjour $nom"; // interpolation
Conditions, boucles et fonctions
Ces trois briques suffisent à exprimer n’importe quelle logique.
<?php
// Condition
$temperature = 28;
if ($temperature > 25) {
echo "Il fait chaud.";
} else {
echo "Température agréable.";
}
// Boucle sur un tableau
$fruits = ["pomme", "banane", "kiwi"];
foreach ($fruits as $fruit) {
echo $fruit . "\n";
}
// Fonction typée (PHP moderne)
function aireRectangle(float $largeur, float $hauteur): float
{
return $largeur * $hauteur;
}
echo aireRectangle(4, 5); // 20
La boucle foreach est la plus utilisée en PHP : elle parcourt naturellement les tableaux. Notez le typage des paramètres et de la valeur de retour (float) : cette rigueur, facultative mais fortement recommandée, évite une grande classe de bugs.
Traiter un formulaire
Le traitement de formulaires est l’un des cas d’usage historiques de PHP. Les données envoyées arrivent dans les superglobales $_POST ou $_GET. Voici un formulaire de contact minimal et sûr :
<?php
$message = "";
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$nom = trim($_POST['nom'] ?? '');
$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
if ($nom !== '' && $email) {
$message = "Merci " . htmlspecialchars($nom) . " !";
} else {
$message = "Formulaire invalide.";
}
}
?>
<form method="post">
<input name="nom" placeholder="Votre nom">
<input name="email" placeholder="Votre e-mail">
<button>Envoyer</button>
</form>
<p><?= $message ?></p>
Deux réflexes de sécurité apparaissent ici et doivent devenir automatiques. filter_input valide l’e-mail côté serveur ; htmlspecialchars échappe toute donnée renvoyée dans le HTML pour bloquer les attaques XSS. Ne faites jamais confiance à une donnée venue du navigateur.
Bonne pratique — Toujours valider et échapper Une donnée utilisateur est hostile par défaut. Validez-la à l’entrée (type, format), échappez-la à la sortie selon le contexte (HTML, URL, SQL). C’est le socle de toute application PHP fiable.
Se connecter à une base de données avec PDO
Une application dynamique a besoin de stocker des données. PDO (PHP Data Objects) est l’interface standard, compatible avec MySQL, PostgreSQL, SQLite et d’autres. Le point crucial : utiliser des requêtes préparées pour se prémunir des injections SQL.
<?php
$pdo = new PDO(
'mysql:host=localhost;dbname=blog;charset=utf8mb4',
'utilisateur',
'mot_de_passe',
[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
);
// Lecture avec paramètre lié
$stmt = $pdo->prepare('SELECT * FROM articles WHERE auteur = ?');
$stmt->execute(['Léa']);
$articles = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($articles as $article) {
echo htmlspecialchars($article['titre']) . "\n";
}
Pour insérer des données, on prépare de la même manière :
<?php
$stmt = $pdo->prepare(
'INSERT INTO articles (titre, auteur) VALUES (:titre, :auteur)'
);
$stmt->execute([
':titre' => 'Débuter en PHP',
':auteur' => 'Léa',
]);
Bonne pratique — Jamais de variable dans une requête SQL N’écrivez jamais
"SELECT ... WHERE id = $id"en concaténant directement. Passez toujours par des paramètres liés (?ou:nom). PDO se charge de l’échappement et neutralise les injections SQL.
PHP moderne : ce qui a changé avec la série 8.x
PHP 8 a rapproché le langage des standards actuels. Quelques apports marquants à connaître dès le début :
- Typage renforcé : types d’arguments et de retour, propriétés typées,
union types(int|string). - Constructor property promotion : déclaration et affectation des propriétés directement dans le constructeur.
- Match expression : une alternative concise et stricte au
switch. - Named arguments et enums pour un code plus expressif.
<?php
enum Statut: string
{
case Brouillon = 'draft';
case Publie = 'published';
}
class Article
{
public function __construct(
public string $titre,
public Statut $statut = Statut::Brouillon,
) {}
}
$a = new Article(titre: "Débuter en PHP", statut: Statut::Publie);
echo $a->statut->value; // published
Ce style — classes typées, enums, promotion de propriétés — est celui qu’on retrouve dans tout code professionnel récent. Adoptez-le dès vos premiers projets orientés objet.
L’écosystème : Composer et les frameworks
Le PHP moderne ne s’écrit plus à la main de bout en bout. Deux outils structurent l’écosystème.
Composer est le gestionnaire de dépendances. Il télécharge les bibliothèques et gère l’autoloading (chargement automatique des classes) selon la norme PSR-4 :
composer require monolog/monolog
Un fichier composer.json décrit alors les dépendances de votre projet, ce qui rend celui-ci reproductible sur n’importe quelle machine. C’est un passage obligé de tout développement sérieux.
Les frameworks apportent structure et productivité. Les deux références sont Laravel, réputé pour son confort, et Symfony, apprécié pour sa rigueur et sa modularité — que nous détaillons dans notre guide dédié à Symfony, le framework PHP français. Pour exposer des données à une application front, la logique reste la même que dans notre guide des API REST.
Par où continuer
Vous disposez maintenant du socle : syntaxe, types, formulaires, base de données et vision de l’écosystème. La meilleure progression consiste à construire un petit projet réel — un mini-blog avec liste d’articles et formulaire — puis à le refactorer en orienté objet, avant d’introduire Composer et un framework. Codez régulièrement, échappez toujours vos sorties, préparez toujours vos requêtes : ces trois réflexes vous placent d’emblée sur de bons rails.