Maison >cadre php >PensezPHP >Parlons de la vie passée et présente de spl_autoload_register

Parlons de la vie passée et présente de spl_autoload_register

咔咔
咔咔original
2020-09-01 00:10:071626parcourir

Cet article vous fera découvrir l'histoire appartenant à spl_autoload_register

. Avant-propos

Kaka a compilé une feuille de route et a commencé à créer un guide d'entretien, se préparant à suivre cette feuille de route que j'écris un article et j'ajouterai quelques points de connaissances que je n'ai pas ajoutés plus tard. J'ai également hâte de vous voir dans la zone de commentaires 🎜>

Insérer la description de l'image ici
!
Parlons de la vie passée et présente de spl_autoload_register
1. spl_autoload_register la vie passée et présente

Vous souvenez-vous encore de la différence entre ces deux-là ? include ne donnera un avertissement que lorsqu'une erreur est signalée, tandis que require arrêtera directement le script.

Le concept d'espace de noms a été introduit dans PHP5.3 Pour cette raison, un contributeur l'a dit dans la documentation PHP il y a 11 ans, I made this benchmark to ensure that I don't recommend something that could be called "nice, but slow" later.

Se traduit par "J'ai fait ce test pour m'assurer que je ne recommande pas quelque chose que l'on peut qualifier de bon, mais de très lent" à l'avenir. Le test effectué par

consiste à définir 10 dossiers, chaque dossier a 10 sous-dossiers et chaque sous-dossier a 10 classes, puis à utiliser autoload et spl_autoload pour comparer, et le temps d'exécution moyen est 50 ms plus long .

Ensuite, cette chose fait référence à _autoload() Cette méthode sera finalement abandonnée dans PHP7.2.

En plus des problèmes d'efficacité, il existe une autre raison pour laquelle la méthode _autoload a finalement été abandonnée.

Vous pouvez écrire plusieurs spl_autoload_registers selon vos propres besoins. L'ordre de chargement est en mode file d'attente, premier entré, premier sorti.

autoload est une fonction globale, elle ne peut donc être définie qu'une seule fois. Si elle est définie plusieurs fois, une erreur sera signalée. Si un projet est mis en œuvre à l'aide de plusieurs frameworks, ce problème se posera.

2. Utilisation simple de spl_autoload_register

Cette fonction n'a que trois paramètres, le premier paramètre est automatiquement chargé Fonction , le deuxième paramètre consiste à lever une exception lorsque la fonction enregistrée automatiquement échoue, et le troisième paramètre consiste à ajouter la fonction en tête de la file d'attente, et non à la queue de la file d'attente.

Les éléments ci-dessus sont tous définis sur la base de vrais.

Définissez deux fichiers say et user

Le fichier say déclare une classe Say et définit une méthode hello

Parlons de la vie passée et présente de spl_autoload_register
Insérer la description de l'image ici

Maintenant, lorsque nous arrivons au fichier utilisateur, nous devons d'abord définir une méthode de chargement automatique, puis utiliser spl_autoload_register s'inscrire

Parlons de la vie passée et présente de spl_autoload_registerRésultats des données impriméesParlons de la vie passée et présente de spl_autoload_register

La persévérance dans l'apprentissage, la persévérance dans les blogs et la persévérance dans le partage sont ce que Kaka a toujours respecté depuis sa création. J'espère que les articles de Kaka sur le grand Internet pourront vous apporter un peu d'aide.

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