Différences entre les fonctions PHP "include" et "require"

Et exemples d'utilisation

Paul Underwood

Traducteur

Sébastien Germez

Dans ce tutoriel, nous allons expliquer les différences entre deux fonctions PHP très utilisées : include et require.

Commentez

- Titre : Différences entre les fonctions PHP "include" et "require"

- Auteur : Paul Underwood

- Traducteur : Sébastien Germez

- Parution : 4 décembre 2012

- Public visé :

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2012 Paul Underwood. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Traduction

- II. Introduction

- III. La fonction include

- IV. La fonction include_once

- V. La fonction require

- VI. La fonction require_once

- VII. Conclusion

- VIII. Remerciements

I - Traduction

Ce tutoriel est la traduction la plus fidèle possible du tutoriel original de Paul Underwood, Difference Between PHP Include And Require.

II - Introduction

Une des questions les plus posées par les débutants en PHP est « pourquoi existe-t-il quatre façons différentes pour inclure un fichier externe ? ».

En effet, PHP propose plusieurs fonctions d'inclusion de fichiers : include, include_once, require et require_once. À quoi servent ces différentes fonctions ? En quoi sont-elles différentes ? Nous allons répondre à ces questions dans la suite de ce tutoriel.

III - La fonction include

La fonction include est utilisée pour inclure un fichier au sein du processus courant. Elle prend un argument en entrée : la chaîne de caractères qui correspond au chemin du fichier.

include 'main_page.php';

Le code qui est dans le fichier inclus pourra être lancé en appelant la fonction correspondante.

Cette fonction peut être utilisée dans un système de template PHP quand vous avez un entête de page qui sera la même sur toutes les pages. Dans ce cas, vous pouvez placer le code correspondant à l'entête dans un seul fichier, qui sera par la suite inclus dans toutes vos pages.

<?php
include 'header.php';
?>
<div id="content">
</div>
<?php
include 'footer.php';
?>

Si le fichier que vous essayez d'inclure n'est pas trouvé, PHP renverra alors un warning. Le chemin du fichier passé en paramètre peut être absolu ou relatif.

IV - La fonction include_once

Cette fonction est la même que sa « mère » include à ceci près que le fichier ne sera inclus qu'une seule fois.

include_once 'main_page.php';

La fonction include vous autorise à inclure plusieurs fois le même fichier grâce à une boucle par exemple.

foreach($products as $product)
{
// will display all products.php
include 'product.php';
}

Mais si on reprend cette boucle en utilisant include_once à la place, le fichier ne sera inclus qu'une seule fois.

foreach($products as $product)
{
// will only display one product
include_once 'product.php';
}

L'utilisation la plus courante de cette fonction est lorsque vous avez plusieurs fonctions définies dans le fichier qui sera inclus. Pour éviter d'avoir des erreurs sur la redéfinition de fonctions, on utilise include_once pour n'inclure le fichier qu'une seule et unique fois.

V - La fonction require

La fonction require agit de la même manière que sa « sœur » include à ceci près qu'elle génère une erreur si le fichier à inclure n'est pas trouvé. Comme son nom l'indique, le fichier est requis pour que l'application fonctionne.

L'erreur générée s'il y a lieu sera une E_COMPILE_ERROR qui arrête l'application là où la fonction include génère un warning qui n'influe pas le fonctionnement de l'application.

La fonction require s'utilise exactement de la même manière que les précédentes.

require 'main_page.php';

VI - La fonction require_once

La dernière des quatre fonctions est require_once, qui est une combinaison des fonctions require et include_once. De ce fait cette fonction s'assure d'abord que le fichier à inclure existe bien, et si ce n'est pas le cas, génère une erreur. Puis elle s'assure que le fichier n'est utilisé qu'une seule fois.

Cette fonction est la plus stricte des quatre et est celle que j'utilise le plus pour construire mes pages. Si l'on reprend l'exemple cité plus haut, la fonction require_once est celle qui doit être utilisée pour inclure l'entête et le pied de page de vos pages. En effet, sans ces deux éléments, votre site ne s'affichera pas correctement, il ne faut donc pas qu'il puisse fonctionner sans eux. Mais il faut également qu'ils ne s'affichent qu'une seule fois.

<?php
require_once 'header.php';
?>
<div id="content">
</div>
<?php
require_once 'footer.php';
?>

VII - Conclusion

Dans ce tutoriel, nous avons vu les différences et les exemples d'utilisation des quatre fonctions PHP qui permettent d'inclure des fichiers.

À vous maintenant d'en faire bon usage !

VIII - Remerciements

Je tiens à remercier Paul Underwood de m'avoir autorisé à traduire son tutoriel.
Je remercie également _Max_ pour sa relecture orthographique.