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.
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.