Maison  >  Article  >  développement back-end  >  Problèmes résultant d'une introduction répétée en PHP

Problèmes résultant d'une introduction répétée en PHP

零下一度
零下一度original
2017-06-23 14:57:152182parcourir

Tout d'abord, permettez-moi de parler en détail de ces quatre fonctions importées

include() et require( ) a la même fonction que

La seule différence est : require() sera pré-introduit avant l'exécution, qu'elle soit exécutée ou non , tant qu'il existe, include() Il n'est introduit que lorsque l'instruction est exécutée

include_once() et require_once() détectent tous deux si le fichier a été importé, s'il est importé, il ne sera pas importé .

La seule différence est : require_once() est une inclusion inconditionnelle, comme son nom l'indique, elle s'arrêtera si une erreur est rencontrée après son introduction include_once() l'ignorera et continuera à s'exécuter

Concernant les problèmes d'efficacité, je voudrais expliquer que veuillez utiliser consciemment moins include_once(), require_once()

Principe de cette fonction : Importer le fichier -> Comparez l'instruction de script actuelle pour voir si elle a été incluse -> projet avec des centaines de bibliothèques de classes, quelles seraient les conséquences horribles de comparer des dizaines de fois en une seule exécution

J'ai vu des experts écrire sur leurs blogs qu'ils n'avaient pas besoin de prêter attention à ces petits détails et de prêter plus d'attention à l'optimisation SQL. Mon opinion est qu'il faut continuer à réfléchir. Pour les programmeurs sérieux, ils devraient le faire. maintenir une bonne habitude d'optimisation de l'efficacité et prêter attention à chaque détail

Écrivez ici ma solution personnelle pour empêcher l'introduction répétée de fichiers dans plusieurs bibliothèques de classes :

1. Utilisez require() dans le script appelant ;

2. Empêcher l'utilisation répétée de class_exists('class name') ou include('absolute path to class library');

Explication : Le fichier appelant le script utilise require() une fois, car le script appelant est un point d'entrée général pour le programme et la bibliothèque de classes publique est introduite ici. il arrive que la bibliothèque de classes publique ne soit pas utilisée. L'utilisation de l'instruction ci-dessus dans la bibliothèque de classes peut empêcher le script actuel d'introduire à plusieurs reprises la bibliothèque de classes publique, et. tant qu'elle est réussie L'introduction ne sera exécutée que lorsque les conditions seront jugées, et la pré-introduction ne sera pas répétée, améliorant ainsi l'efficacité de l'exécution du programme

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