Include, require ou require_once en PHP : Lequel choisir ?

Accueil PHP 8 Include, require ou require_once en PHP : Lequel choisir ?

Lorsque vous débutez en PHP, vous allez rapidement rencontrer trois instructions essentielles : includerequire et require_once. Ces mots-clés permettent d’inclure des fichiers externes dans votre code PHP, mais ils ne fonctionnent pas exactement de la même manière.

Dans ce tutoriel , nous allons voir ensemble :

  • Ce que font includerequire et require_once.
  • En quoi ils sont différents.
  • Des cas concrets d’utilisation.
  • Et quel choix faire selon votre situation.

Ce tutoriel est destiné à tous ceux qui souhaitent mieux comprendre le fonctionnement de ces fonctions. Vous n’avez pas besoin d’être un expert en PHP pour suivre ce tutoriel.


À quoi servent include, require et require_once en PHP ?

Lorsque vous développez un site ou une application avec PHP, vous allez souvent devoir réutiliser le même code à plusieurs endroits. Par exemple :

  • Une entête de page (header.php)
  • Un pied de page (footer.php)
  • Un fichier de configuration (config.php)
  • Une connexion à la base de données (db.php)

Plutôt que de copier-coller ce code dans chaque fichier, vous pouvez tout simplement l’inclure avec includerequire ou require_once (En savoir plus sur La Gestion des layout en PHP).

Ainsi, si vous modifiez une seule fois le fichier externe, le changement sera automatiquement pris en compte partout où il est inclus. C’est un gain de temps et cela rend votre code plus propre et plus facile à maintenir.


1. Include : l’inclusion souple

include 'config.php';

Que fait include ?

La fonction include va insérer le contenu du fichier config.php dans votre script, à l’endroit exact où elle est appelée.

Et s’il y a une erreur ?

Si le fichier n’existe pas ou contient une erreur, PHP affichera un avertissement (warning), mais continuera l’exécution du script.

Exemple concret

Imaginons que vous ayez un fichier header.php contenant votre menu de navigation :

<!-- header.php -->
<nav>
  <a href="index.php">Accueil</a>
  <a href="contact.php">Contact</a>
</nav>

Et dans votre page principale :

<!-- index.php -->
<!DOCTYPE html>
<html>
<head>
  <title>Ma page</title>
</head>
<body>

<?php include 'header.php'; ?>

<h1>Bienvenue sur mon site</h1>

</body>
</html>

Grâce à include, vous n’avez pas besoin de réécrire le menu à chaque fois.


2. Require : l’inclusion stricte

require 'config.php';

Quelle différence avec include ?

require fonctionne presque de la même manière que include, sauf sur un point très important : si le fichier n’est pas trouvé ou s’il y a une erreur, PHP va interrompre l’exécution du script.

Pourquoi utiliser require ?

Utilisez require lorsque le fichier est indispensable au bon fonctionnement de votre application. Par exemple, pour se connecter à une base de données ou charger une configuration essentielle.

Exemple concret

<?php
require 'db.php'; // fichier contenant la connexion à MySQL

// Requête SQL ici

Si le fichier db.php est manquant ou contient une erreur, il est préférable de stopper l’exécution, car la suite du script ne pourra pas fonctionner correctement.

Formation web et informatique - Alban Guillier - Formateur

Des formations informatique pour tous !

Débutant ou curieux ? Apprenez le développement web, le référencement, le webmarketing, la bureautique, à maîtriser vos appareils Apple et bien plus encore…

Formateur indépendant, professionnel du web depuis 2006, je vous accompagne pas à pas et en cours particulier, que vous soyez débutant ou que vous souhaitiez progresser. En visio, à votre rythme, et toujours avec pédagogie.

Découvrez mes formations Qui suis-je ?

3. Require_once : pour éviter les doublons

require_once 'config.php';

À quoi sert require_once ?

La fonction require_once vérifie d’abord si le fichier a déjà été inclus précédemment. Si c’est le cas, il ne l’inclut pas une seconde fois.

Cela permet d’éviter les conflits, notamment lorsque plusieurs fichiers incluent le même fichier.

Quand l’utiliser ?

Utilisez require_once (ou include_once) si vous n’êtes pas certain que le fichier a déjà été inclus dans une autre partie du code. Cela vous évite les doublons, les erreurs de redéclaration de fonctions ou de classes, et d’éventuels bugs.

Exemple concret

Imaginons que vous ayez une fonction déclarée dans un fichier :

// fonctions.php
function direBonjour() {
    echo "Bonjour !";
}

Si vous utilisez ce fichier dans plusieurs parties de votre site :

require_once 'fonctions.php';
require_once 'fonctions.php'; // n'est pas inclus une seconde fois

Vous n’aurez pas d’erreur. Mais si vous aviez utilisé require, vous auriez eu une erreur fatale à cause de la double déclaration de la fonction.


Comparaison : include, require et require_once

FonctionSi le fichier est manquant ?Inclus plusieurs fois ?Cas d’usage principal
includeAffiche un warning, continueOuiInclusion facultative (ex : bannière, menu)
requireAffiche une erreur fatale, stoppe le scriptOuiInclusion obligatoire (ex : config, DB)
require_onceErreur fatale si absent, mais n’inclut qu’une seule foisNonInclusion obligatoire et unique

Bonnes pratiques à adopter

  1. Utilisez require_once pour les fichiers critiques comme la configuration ou la connexion à la base de données.
  2. Préférez include pour les fichiers secondaires (pied de page, publicité, etc.).
  3. Évitez les doublons en utilisant require_once plutôt que require.
  4. Regroupez les inclusions en haut de votre script pour une meilleure lisibilité.
  5. Utilisez des chemins relatifs ou absolus correctement pour éviter les erreurs.

Astuce : gérer les chemins avec DIR

Pour éviter les problèmes liés aux chemins relatifs, vous pouvez utiliser __DIR__, une constante magique PHP.

require_once __DIR__ . '/config.php';

Cela garantit que PHP cherche le fichier dans le dossier du script actuel, peu importe où vous exécutez le fichier.

Cas concret : un site structuré proprement

Arborescence :

/mon_site/
│
├── index.php
├── config.php
├── db.php
├── header.php
├── footer.php
└── pages/
    └── contact.php

Dans index.php :

<?php
require_once 'config.php';
require_once 'db.php';
include 'header.php';
?>

<h1>Bienvenue</h1>

<?php include 'footer.php'; ?>

Dans pages/contact.php :

<?php
require_once __DIR__ . '/../config.php';
require_once __DIR__ . '/../db.php';
include __DIR__ . '/../header.php';
?>

<h1>Contactez-nous</h1>

<?php include __DIR__ . '/../footer.php'; ?>

Avec cette structure :

  • Le code est réutilisable.
  • Il est organisé et maintenable.
  • Vous évitez les doublons ou erreurs de redéclaration.
include, require ou require_once en PHP

Conclusion : que faut-il retenir ?

  • include est souple, mais non bloquant en cas d’erreur. Idéal pour des éléments optionnels.
  • require est plus strict : il stoppe le script si le fichier est manquant.
  • require_once est votre meilleur allié quand vous avez besoin d’un fichier une seule fois et que son contenu est essentiel.

Utilisez les bonnes fonctions au bon moment, et vous gagnerez en clarté, sécurité et robustesse dans vos projets PHP.

Allez plus loin avec PHP :

Live on Twitch
  • 🔥 Vendredi 25 Avril 2025 >19h00

    HTML & SémantiqueStructure d'une page HTML