Objectifs
- Etre capable d'inclure des fichiers dans un autre en PHP avec include, require,include_once et require_once
Présentation
- Dans ce tutoriel nous allons étudier les instructions PHP include, require, include_once et require_once.
- Les fonctions include, require, include_once et require_once prennent un seul paramètre de type chaîne de caractères. C'est le chemin qui mène au fichier à importer. Le chemin est par défaut relatif par rapport au répertoire dans lequel se trouve le script
L'instruction include
- L'instruction
includeinclut et exécute le fichier spécifié en argument. - Inclut le contenu d'un autre fichier appelé, mais ne provoque pas d'erreur bloquante s'il est indisponible
- Les fichiers sont inclus suivant le chemin du fichier fourni ; si aucun n'est fourni, l'include_path sera vérifié. Si le fichier n'est pas trouvé dans l'include_path,
includevérifiera dans le dossier du script appelant et dans le dossier de travail courant avant d'échouer. - L'instruction
includeenverra une erreur de type warning si elle ne peut trouver le fichier; ce comportement est différent derequire, qui enverra une erreur de niveau fatal. - L'exécution du fichier
appel.phpdonne le résultat suivant


- L'instruction
include_once
- La commande
include_once()inclut et évalue le fichier spécifié durant l'exécution du script. Le comportement est similaire àinclude(), mais la différence est que si le code a déjà été inclus, il ne le sera pas une seconde fois. - Même chose que
include, mais ne le fait qu'une seule fois en tout et pour tout dans le même document sirequirea déjà été appelé auparavant avec le même nom de fichier
Avec
includeouinclude_once, si le ficher ne peut pas être inclus, PHP ne générera qu'une alerte de niveau E_WARNING. Le script PHP pourra donc continuer.- La commande
require
- Inclut le contenu d'un autre fichier appelé, et provoque une erreur bloquante s'il est indisponible
- L'exécution du fichier
appel.phpdonne le résultat suivant


require_once
- Même chose que
require, mais ne le fait qu'une seule fois en tout et pour tout dans le même document, sirequirea déjà été appelé auparavant avec le même nom de fichier - Exemple:
- Créer deux fichiers PHP variable.php et appel.php
Avec
requireourequire_once, si le fichier ne peut pas être inclus, une erreur fatale de niveau E_COMPILE_ERROR sera produite, ce qui mettra fin au script PHP.- Même chose que
Différences
Différence entre
include()etrequire()- Dans
include(), le fichier que vous incluez est introuvable alors que l'interpréteur PHP a généré un avertissement et l'exécution se poursuit sans ce fichier. - Dans
require(), le fichier que vous incluez est introuvable car l'interpréteur PHP a généré une erreur fatale et l'exécution s'arrête là. Includeetrequiresont identiques, sauf en cas d'échec:requireproduira une erreur fatale ( E_COMPILE_ERROR ) et arrêter le scriptincludeproduira uniquement un avertissement ( E_WARNING ) et le script continuera
- Dans
Différence entre
require_once()etinclude_once()-
require_once()etinclude_once()sont insensibles à la casse sous les systèmes comme Windows.
<?php include_once("a.php"); // ceci inclut le fichier a.php include_once("A.php"); // ceci inclut encore le fichier a.php sous Windows! (uniquement en PHP 4) ?>-
- La différence entre les instructions
includeetrequireet leurs variantesinclude_onceetrequire_onceest qu’on va pouvoirinclureplusieurs fois un même chier avecincludeetrequiretandis qu’en utilisantinclude_onceetrequire_oncecela ne sera pas possible : un même chier ne pourra être inclus qu’une seule fois dans un autre chier.
Déclaration Charger le même fichier Si le fichier est introuvable Include Oui Scipt continue Include_once Non Scipt continue require Oui Script arrêté Require_once Non Script arrêté Application
- Soit le fichier fonctions.php qui contient une fonction mafonction
- Soit le fichier index.php qui a besoin d'utiliser une fonction déclarée dans notre fonctions.php.
- Le fichier entete.php a lui aussi besoin d'utiliser cette fonction. Chacun s'occupera donc d'inclure fonctions.php.
- Utiliser l'instruction
requireetrequire_oncepour inclure le fichier dans les deux autres.