45 votes

Pourquoi inclure quand vous pouvez nécessiter en PHP?

Quel est l'intérêt de tenter d'inclure ou d'inclure_once une bibliothèque en PHP si vous devez souvent utiliser require ou require_once à la place (car ils sont généralement d'une importance critique)?

46voto

jopke Points 987

Parfois, vous incluez des fichiers à partir de bibliothèques que vous ne contrôlez pas, ou votre code est exécuté sur des environnements différents.

Il est possible que certains de ces fichiers ne soient pas réellement nécessaires pour votre script, mais soient des fichiers d'aide ou des extras.

Par exemple, si votre PHP génère du HTML, vous pourriez utiliser une inclusion pour ajouter une bannière. Mais vous ne voudriez pas que votre fichier s'arrête si, pour une raison quelconque, ce fichier de bannière manquait. Vous voudriez plutôt échouer gracieusement.

31voto

Asaph Points 56989

La différence entre include/include_once et require/require_once est que lorsque qu'un fichier n'est pas trouvé, le premier déclenche un avertissement tandis que le second déclenche une erreur. Les opinions peuvent varier mais à mon avis, si un fichier nécessaire n'est pas présent ou lisible pour une raison quelconque, cela représente une situation très critique et je préférerais voir une erreur et arrêter l'exécution, plutôt que d'avoir un avertissement et de continuer l'exécution dans un contexte clairement défaillant. Je crois donc qu'il est préférable de suivre la pratique recommandée d'utiliser exclusivement require/require_once et d'éviter include/include_once complètement.

7voto

soulkphp Points 664

include - cela tente de charger un fichier mais n'arrête pas l'exécution en cas d'échec

include_once - fait la même chose que 'include' mais effectue une vérification supplémentaire pour s'assurer que le fichier n'a pas déjà été inclus dans le script actuel

require - cela tente de charger un fichier et lance une erreur fatale en cas d'échec

require_once - même chose que 'require' mais effectue une vérification supplémentaire pour s'assurer qu'il n'est chargé qu'une seule fois

Si vous n'avez pas besoin d'utiliser include_once ou require_once, essayez de les éviter car la vérification supplémentaire ajoute un léger surcoût.

EDIT : Je devrais ajouter que la différence clé est que require échoue au niveau du compilateur, tandis que include lance une erreur à l'exécution.

3voto

slowkvant Points 168

Require arrêtera le script si le fichier ne peut pas être inclus.
Include se contentera simplement d'afficher un message d'erreur.

Au fait : *_once est lent. Ne devrait pas l'utiliser à moins que vous en ayez vraiment besoin.

2voto

shinkou Points 3392

Parce que vous ne voulez pas que les fichiers manquants arrêtent votre spectacle. ;)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X