Maison > Article > développement back-end > Problèmes résultant d'une introduction répétée en PHP
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!