Maison >développement back-end >tutoriel php >Importation de fonctions PHP et inclusion de fichiers : la différence entre les instructions include() et require()
Si vous souhaitez utiliser les fonctions définies dans le fichier dans le script PHP, vous devez utiliser l'une des fonctions parmi include(), include_once(), require() et require_once() pour chargez le fichier de bibliothèque de fonctions dans le script. Dans le chapitre précédent, nous avons expliqué comment utiliser les bibliothèques de fonctions personnalisées en PHP Ce chapitre parlera spécifiquement des différences et des connexions entre require() et include().
PHP propose deux méthodes pour inclure des fichiers externes : require() et include() sont deux méthodes courantes dans Server Side Include.
require est utilisé comme require("MyRequireFile.php" ). Cette fonction est généralement placée au début du programme PHP. Avant que le programme PHP ne soit exécuté, elle lira d'abord le fichier spécifié par require et l'intégrera à la page Web du programme PHP. Les fonctions couramment utilisées peuvent également être introduites dans les pages Web de cette manière. Lorsque require inclut un fichier, il est inclus de manière absolue. Si le fichier inclus n'existe pas, une erreur fatale sera générée. Une fois l'erreur survenue, le programme de script suivant ne sera pas exécuté. en ajouter un autre Le contenu d'un fichier source est entièrement copié dans ce fichier, il est donc généralement placé au début du fichier source pour référencer les fichiers de fonctions publiques et les fichiers de classe publics qui doivent être utilisés.
include est utilisé comme include("MyIncludeFile.php");. Cette fonction est généralement placée dans la partie traitement du contrôle de flux. La page Web du programme PHP ne lit le fichier d'inclusion que lorsqu'elle le lit. De cette façon, le processus d’exécution du programme peut être simplifié. Les fichiers inclus dans include sont relatifs. Si le fichier inclus n'existe pas, un avertissement sera généré, mais le programme de script suivant continuera à s'exécuter. De plus, les fichiers inclus dans include sont généralement écrits pendant l'exécution du programme.
La différence entre include() et require()
La différence entre include() et require() On pense que c'est le problème le plus fondamental en PHP. Ces deux utilisations sont exactement les mêmes, et il n’est pas nécessaire de savoir laquelle est placée à l’avant et laquelle est placée au milieu. La différence la plus fondamentale entre eux réside dans la manière dont ils gèrent les erreurs.
require() : Si le fichier n'existe pas, une erreur fatale sera signalée. Le script cessera de s'exécuter.
include() : Si le fichier n'existe pas, un avertissement sera affiché. être donné, mais le script continuera. Les performances de require() pour l'exécution de
php sont similaires à celles d'include(). La différence est que pour include(), le fichier doit être lu et évalué à chaque fois que include() est exécuté ; tandis que pour require(), le fichier n'est traité qu'une seule fois (en fait, le contenu du fichier remplace l'instruction require()) . Cela signifie que si vous avez du code contenant l’une de ces instructions et du code pouvant être exécuté plusieurs fois, il est plus efficace d’utiliser require(). D'un autre côté, si vous lisez un fichier différent à chaque fois que le code est exécuté, ou si vous avez une boucle qui parcourt un ensemble de fichiers, utilisez include() car vous pouvez définir une variable pour le nom de fichier que vous souhaitez inclure quand. l'argument est Utiliser cette variable lors de l'inclusion().
Quelques connexions et différences supplémentaires
1 include a une valeur de retour, mais require n'en a pas.
2. include() inclut et exécute le fichier spécifié. Lorsque le traitement échoue, include() génère un avertissement. Le code du programme importé sera exécuté, et ces programmes auront et appelleront le fichier source une fois exécutés. . à la même portée de variable que l'instruction include(). Vous pouvez importer des pages statiques depuis le même serveur.
3. La fonction de include_once() est presque la même que celle de include()
La seule différence est que include_once() vérifiera d'abord si le fichier à importer se trouve déjà dans d'autres fichiers. dans le programme L'endroit a été importé, si c'est le cas, il ne sera pas réimporté (cette fonction est parfois très importante, par exemple, si la fonction à importer déclare des fonctions que vous avez vous-même définies, alors si elle est répétée dans le même programme Importez ce fichier, et un message d'erreur apparaîtra la deuxième fois que vous l'importerez, car PHP ne permet pas de déclarer deux fois des fonctions portant le même nom).
4. require() lira le contenu du fichier cible et se remplacera par le contenu lu. Si le traitement échoue, require() provoquera une erreur fatale.
5. Comme include_once(), require_once() vérifiera d'abord si le contenu du fichier cible a déjà été importé. Si tel est le cas, le même contenu ne sera pas importé à nouveau.
6. require est une inclusion inconditionnelle, c'est-à-dire que si require est ajouté à un processus, require sera exécuté en premier, que la condition soit vraie ou non.
L'exemple suivant illustre pleinement la différence entre ces deux fonctions :
Écrivez deux fichiers php nommés test-include.php et test-require .php, veuillez noter que il ne devrait pas y avoir de fichier nommé test1.php dans le même répertoire.
test-include.php <?php include 'test1.php'; echo 'abc'; ?>
Exécutez le code ci-dessus. Étant donné que le fichier test1.php n'est pas trouvé, nous voyons le message d'erreur. En même temps, abc s'affiche sous le message d'erreur. le suivant :
Warning: include(test1.php) [function.include]: failed to open stream: No such file or directory in D:\www\test-include.php on line 3 Warning: include() [function.include]: Failed opening 'test1.php' for inclusion (include_path='.;C:\php5\pear') in D:\www\test-include.php on line 3 abc
test-require.php <?php require 'test1.php'; echo 'abc'; ?>
运行上面的代码,因为没有找到test1.php文件,我们看到了报错信息,但是,报错信息的下边没有显示abc,你看到的可能是类似下边的情况:
Warning: require(test1.php) [function.require]: failed to open stream: No such file or directory in D:\www\test-require.php on line 3 Fatal error: require() [function.require]: Failed opening required 'test1' (include_path='.;C:\php5\pear') in D:\www\test-require.php on line 3
【相关教程推荐】
2. 视频教程:函数导入与文件包含:include和require的使用
3. php实战视频教程
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!