Maison  >  Article  >  développement back-end  >  Une brève analyse de la différence entre include et require en PHP

Une brève analyse de la différence entre include et require en PHP

不言
不言original
2018-07-18 10:42:283698parcourir

Cet article partagera avec vous la différence entre les fonctions include et require file en PHP. Les amis dans le besoin peuvent s'y référer.

Par exemple, le code suivant :

include('hello.php');
echo 'include test final!';//include报错,但是会继续执行,显示:include test final!
require('hello.php');
echo 'require test final!';//require报错,停止代码的执行。

Résumé en une phrase :
1.include() génère un avertissement
2.require() entraîne un fatal error

En d’autres termes, si vous souhaitez arrêter le traitement de la page lorsqu’un fichier est manquant, n’hésitez pas à utiliser require() . Ce n'est pas le cas avec include() et le script continuera à s'exécuter. Assurez-vous également que le include_path approprié est défini.
C'est-à-dire que le fichier requis est lu lorsque le programme est à nouveau analysé, au lieu d'après l'analyse, si le fichier requis ne peut pas être lu, l'étape suivante ne peut pas être franchie. Par conséquent, si le fichier n'est pas inclus correctement et entraîne l'inclusion du programme, il est préférable d'utiliser require. Cela peut être légèrement plus efficace.

Remarque : require() inclura le fichier de toute façon, et include() peut inclure sélectivement :

<?php
 if(FALSE){
   require(&#39;x.php&#39;);
 }
 if(FALSE){
   include(&#39;s.php&#39;);
 }
?>

Dans le code ci-dessus : x.php sera définitivement inclus, et s. php ne doit pas être inclus.

Deux méthodes offrent une flexibilité d'utilisation différente :
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é, il lira d'abord le fichier spécifié par require et l'intégrera à la page Web du programme PHP.
include est utilisé comme include("MyIncludeFile.php"); Cette fonction est généralement placée dans la section traitement du contrôle de flux. La page Web du programme PHP lit le fichier d'inclusion lorsqu'elle le lit. De cette façon, le processus d’exécution du programme peut être simplifié.
1. Syntaxe d'utilisation et introduction

1. include()
Syntaxe : include(/path/to/filename)
include L'instruction () inclura un fichier à l'emplacement où elle est appelée. L'inclusion d'un fichier a pour effet de copier les données du fichier spécifié à l'emplacement de l'instruction.
Les parenses peuvent être ignorées lors de l'utilisation de include().

L'instruction include() peut être exécutée en fonction de conditions. Il y a un phénomène étrange lors de l'utilisation de include() dans une instruction conditionnelle. Elle doit être entourée d'accolades de bloc d'instruction ou d'autres crochets d'instruction.

2. include_once()
Syntaxe : include_once(filename)

l'instruction include_once() inclut et exécute le fichier spécifié pendant l'exécution du script. Ce comportement est similaire à l'instruction include(). La seule différence est que include_once() déterminera d'abord si le fichier a déjà été inclus. S'il a été inclus, cette inclusion sera ignorée.
include_once() doit être utilisé lorsque vous souhaitez vous assurer qu'il n'est inclus qu'une seule fois pour éviter des problèmes tels que la redéfinition des fonctions et la réaffectation des variables.

Résumé : La fonction include_once() a la même fonction que include, mais elle vérifiera d'abord si le fichier a été inclus. S'il est déjà inclus, include_once ne sera plus exécuté. Sinon, le fichier doit être inclus. C'est exactement la même chose que include sauf ceci.

3. require()
Syntaxe : require(filename)
require() est en grande partie la même que include, les deux incluent un fichier modèle dans require Call position assise.
Il existe deux différences importantes entre require et include. Premièrement, quel que soit l'emplacement de require, le fichier de spécification sera inclus dans le script là où require apparaît. Par exemple, même si require est placé dans une instruction if qui renvoie false, le fichier spécifié sera toujours inclus.
La deuxième différence importante est la suivante : lorsque require échoue, le script cessera de s'exécuter, tandis que dans le cas d'include, le script continuera à s'exécuter.

4. require_once()
Syntaxe : require_once(filename)
require_once() inclut et exécute le fichier spécifié pendant l'exécution du script. Ce comportement est similaire à l'instruction require(). La seule différence est que require_once() déterminera d'abord si le fichier a déjà été inclus, s'il a été inclus, il ignorera cette inclusion.
require_once() doit être utilisé lorsque vous souhaitez vous assurer qu'il n'est inclus qu'une seule fois pour éviter des problèmes tels que la redéfinition des fonctions et la réaffectation des variables.

Résumé : À mesure que le site Web s'agrandit, certains fichiers peuvent être inclus à plusieurs reprises. Cela ne pose peut-être pas de problème, mais si vous modifiez les variables du fichier inclus, elles seront écrasées car le fichier d'origine sera à nouveau inclus ultérieurement, ce qui peut ne pas être souhaité. Un autre problème pouvant survenir est celui des noms de fonctions conflictuels dans les fichiers inclus. Ces problèmes peuvent être résolus en utilisant require_once.
La fonction require_once garantit que le fichier n'est inclus qu'une seule fois. Après avoir rencontré require_once, les tentatives ultérieures d'inclusion du même fichier seront ignorées.

2. Résumé des différences

1. La différence entre les instructions include() et require().
La différence entre les deux : Ces deux structures sont exactement les mêmes, sauf sur la façon de gérer l'échec.
include() génère un avertissement et le script continuera à s'exécuter.
require() provoquera une erreur fatale et le script cessera de s'exécuter.

En d'autres termes, utilisez require() si vous souhaitez arrêter le traitement de la page lorsqu'un fichier manquant ou une erreur est rencontré. Si vous souhaitez continuer le traitement de la page lorsqu'une erreur est rencontrée, utilisez include().
Notez qu'avant PHP 4.3.5, les erreurs de syntaxe dans les fichiers d'inclusion n'entraînaient pas l'arrêt du programme, mais à partir de cette version, elles le feront.

2. La différence entre include_once(), require_once() et include(), require()
include_once() est la même que require_once() et doit être utilisée lorsque le même fichier peut être inclus plus d'une fois. lors de l'exécution du script. Dans ce cas, vous voulez vous assurer qu'il n'est inclus qu'une seule fois pour éviter des problèmes tels que la redéfinition des fonctions, la réaffectation des variables, etc. C'est la principale différence entre include_once() et require_once() et include() et require().

3. Problèmes qui nécessitent une attention

1. Problèmes de chemin
Surtout lorsque les inclusions sont imbriquées, vous devez faire attention aux fichiers inclus. chemin.
Par exemple, le fichier A contient le fichier B, le fichier B contient le fichier C et les fichiers A, B et C ne sont pas dans le même dossier. Il est souvent facile de faire des erreurs à ce moment-là.
Solution : vous pouvez utiliser l'instruction dirname(__FILE__), qui signifie obtenir le chemin absolu du script actuel. Tels que : require_once(dirname(__FILE__).'/config.php');

2. Problèmes d'efficacité
include_once(), require_once() et include(), require () est moins efficace car ils doivent au moins d'abord déterminer si le fichier est inclus. Ce problème a été grandement amélioré dans la version PHP5, mais il existe toujours une différence d'efficacité.

Recommandations associées :

Scénarios d'utilisation et différences entre include_once, require_once, et include et require en php.

La différence entre include et require en PHP, phpincluderequire

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn