2017-09-17 3 views
-2

Je sais include et require est utilisé pour insérer php dans d'autres fichiers comme les fichiers html. Mais ce que je peux comprendre, c'est le moment de l'utilisation des deux. Quelqu'un peut-il expliquer profondément dans les deux d'entre eux? Je trouve des informations en ligne mais elles ne sont pas toutes bien expliquées, je pense, pas assez claires.Quelqu'un peut-il expliquer en profondeur et exiger en php?

+1

» Il vaut mieux poser des questions spécifiques sur des choses spécifiques que vous avez eu du mal à comprendre et des problèmes d'utilisation que vous avez rencontrés. – pvg

+0

Si vous "require", l'exécution du code s'arrêtera s'il ne parvient pas à trouver le fichier requis. Si vous "incluez" cela ne s'arrête pas. –

Répondre

0

Dans le PHP documentation about required ils disent ceci:

exigent est identique à inclure, sauf en cas d'échec, elle produira aussi une erreur de niveau E_COMPILE_ERROR fatale. En d'autres termes, il arrêtera le script alors qu'inclure n'émet qu'un avertissement (E_WARNING) qui permet au script de continuer.

et for include le disent que ce

L'instruction include inclut et évalue le fichier spécifié. read more

exemple explicite

Cette ligne en utilisant comprennent va inclure le fichier Php parce que le fichier existe.

<? include("file1.php"); //This file exists ?> 

Cette ligne en utilisant comprennent va afficher un avertissement dans votre interface car le fichier n'existe pas. Révéler ce message sur votre interface dépend de la level of error que vous avez mis dans votre php.ini

<? include("filenotexist.php"); //This file NO exists ?> 

Résultat

Warning: include(filenotexist.php) [function.include]: failed to open stream: No such file or directory in ****** on line 6 
Warning: include() [function.include]: Failed opening 'filenotexist.php' for inclusion (include_path='.;C:\php\pear') in **** on line 6 

Cette ligne à l'aide nécessaire va faire la même chose que l'inclure, il va inclure le fichier php car le fichier existe.

<? require("file1.php"); //This file exist ?> 

Cette ligne à l'aide nécessaire, vous obtenez un avertissement et une erreur fatale car le fichier n'existe pas. Cette erreur fatale est la principale différence que vous recherchez.

<? require("filenoexists1.php"); //This file NO exist ?> 

Résultat

Warning: require(filenoexists1.php) [function.require]: failed to open stream: No such file or directory in **** on line 6 
Fatal error: require() [function.require]: Failed opening required 'filenoexists1.php' (include_path='.;C:\php\pear') in *** on line 6 

Et il y a même une autre fonction intéressante appelée required_once. Si vous nécessaire plusieurs fois le même fichier

<? require("hola.php"); //This file exist ?> 
<? require("hola.php"); //This file exist ?> 
<? require("hola.php"); //This file exist ?> 
<? require("hola.php"); //This file exist ?> 
<? require("hola.php"); //This file exist ?> 

Le résultat est 5 fois Hola. Il est logique parce que requis le fichier 6 fois.

hola hola hola hola hola 

Required_once même si vous incluez 5 fois, Php ne comprendra que une fois.

<? require_once("hola.php"); //This file exist ?> 
<? require_once("hola.php"); //This file exist ?> 
<? require_once("hola.php"); //This file exist ?> 
<? require_once("hola.php"); //This file exist ?> 
<? require_once("hola.php"); //This file exist ?> 

le résultat est

hola 

Hope it helps Daniel

+0

L'auteur dit spécifiquement qu'il a de la difficulté à comprendre la documentation, alors il n'est pas clair à quoi s'attachera la documentation. – pvg

+0

@pvg Je mets le lien de la documentation au cas où il ne serait pas au courant. Il ne dit pas à tout moment "je ne comprends pas la documentation". Et j'ai même mis l'explication sur exiger et inclure dans ma réponse. Il n'a pas besoin d'aller sur le lien pour comprendre la différence. En outre, la réponse peut aider plus de gens, pas seulement l'affiche, donc vous devez y penser aussi. –

+0

@pvg J'ai amélioré ma réponse. S'il vous plaît, jetez un oeil. –

0

PHP de comprennent, exigent et, pour compléter la liste, include_once et require_once, sont instructions qui permettent à un fichier PHP de récupérer un autre fichier (i n dans la plupart des cas, un autre fichier PHP), et insérez et évaluez le fichier récupéré à la position de l'instruction. Ces instructions ne sont pas, comme vous l'avez écrit, pour "l'insertion de php dans d'autres fichiers comme les fichiers html", mais plutôt le concept qui permet à une application PHP d'avoir son code base structuré en fichiers séparés. Code récupérant d'autres codes récupérant d'autres codes et ainsi de suite.

La différence entre les déclarations mentionnées est essentiellement:

include 'a/file/that/does/not/exist.php'; //emits a warning, but doesn't stop the script 

require 'a/file/that/does/not/exist.php'; //throws a fatal error and stops script execution 

... et en utilisant require_once et include_once, vous pouvez éviter « double comprend », ce qui pourrait causer des problèmes comme la fonction Vous redéfinitions