Maison développement back-end tutoriel php Introduction au mécanisme de chargement automatique PHP - fonction spl_autoload_register(), chargement automatique des classes PHP

Introduction au mécanisme de chargement automatique PHP - fonction spl_autoload_register(), chargement automatique des classes PHP

Oct 14, 2019 pm 06:10 PM
自动加载

* Les fonctions d'include et require sont les mêmes. La différence est que include ne générera un avertissement que lorsqu'une erreur se produit, tandis que require générera une erreur et terminera le script.

* La seule différence entre include_once et include est que include_once vérifiera si le fichier a été introduit, et si c'est le cas, il ne sera pas introduit à nouveau.

La fonction spl_autoload_register() est une méthode importante pour réaliser la fonction de chargement automatique de classes non définies. Le chargement dit automatique signifie que lorsque nous créons une nouvelle classe, nous devons d'abord inclure ou exiger le fichier de classe. S’il n’y a pas d’include ou require , une erreur sera signalée. Ensuite, nous devons écrire de nombreux fichiers include ou require dans l'en-tête du fichier, ce qui est très gênant

Afin de rendre une nouvelle classe normale lorsqu'il n'y a pas de classe include ou require, nous avons le concept de. chargement automatique, et c'est-à-dire qu'une nouvelle classe peut être nouvelle normalement sans inclure le fichier de classe à l'avance, de sorte que notre en-tête de fichier n'a pas besoin d'en contenir beaucoup d'inclusions (require). En fait, c'est une sorte d'encapsulation !

Les fonctions mentionnées ci-dessus peuvent être réalisées en utilisant la fonction spl_autoload_register. Jetons un coup d'œil au principe d'implémentation.

Les paramètres de cette fonction sont les suivants :

Le premier paramètre : autoload_function

Il s'agit d'un nom de fonction [méthode], qui peut être une chaîne ou un tableau (utilisé pour appeler des méthodes de classe). La fonction de cette fonction (méthode) est d'inclure (de demander) le fichier de classe qui a besoin de new, afin que le fichier ne soit pas trouvé lorsque new est utilisé. En fait, il encapsule les fonctions include et require de l’ensemble du projet.

Deuxième paramètre : throw

Ce paramètre définit si spl_autoload_register() lève une exception lorsque la fonction autoload_function ne peut pas être enregistrée avec succès.

Le troisième paramètre : prepend

Si vrai, spl_autoload_register() ajoutera la fonction en tête de la file d'attente au lieu de la queue.

Lorsque nous créons une nouvelle classe et que le fichier de classe n'est pas inclus, la méthode autoload_function sera exécutée

Regardons d'abord un exemple d'erreur : ++++++++++ + ++++++++++

<?php
//当我们直接new一个未包含class类文件时候会报错
$objDemo = new AutoloadClass();
Copier après la connexion

Utiliser correctement la fonction spl_autoload_register()

Nous pouvons voir dans l'exemple suivant que lorsque new n'est pas inclus classe, la fonction avec le premier nom de fonction de paramètre spl_autoload_register sera exécutée. Un paramètre de cette fonction est le nom de classe qui nécessite un nouveau. La fonction de cette fonction est d'inclure cette classe (le nom de classe est cohérent avec le nom de fichier). , de sorte qu'il soit atteint Fonction de chargement automatique. C'est le principe, ce n'est pas très compliqué.

<?php
// 定义工具类在服务器位置 常量
define(&#39;TOOLS_ROOT&#39;, __DIR__ . &#39;/&#39;);
 
//文件 autoloadClass.php ,需要new的文件
class AutoloadClass{
 
    public function __construct()
    {
        // echo &#39;你已经包含我了&#39;;
    }
}
//文件autoloadDemo.php文件
spl_autoload_register(&#39;myAutoLoad&#39;, true, true);
function myAutoLoad($className){
    $classFileName = TOOLS_ROOT."{$className}.php";
    include $classFileName;
}
Copier après la connexion

De plus, nous pouvons le changer en une fonction anonyme à implémenter :

<?php
 
// 定义工具类在服务器位置 常量
define(&#39;TOOLS_ROOT&#39;, __DIR__ . &#39;/&#39;);
 
//文件 autoloadClass.php ,需要new的文件
class AutoloadClass{
 
    public function __construct()
    {
        // echo &#39;你已经包含我了&#39;;
    }
}
spl_autoload_register(function ($className)
{
    $classFileName = TOOLS_ROOT."{$className}.php";
    include $classFileName;
}, true, true);
$objDemo = new AutoloadClass();
Copier après la connexion

Pour plus de connaissances sur PHP, veuillez visiter le Site Web PHP chinois!

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Conventions de dénomination en PHP : Comment utiliser la dénomination en casse chameau pour les classes, les méthodes et les variables Conventions de dénomination en PHP : Comment utiliser la dénomination en casse chameau pour les classes, les méthodes et les variables Jul 30, 2023 pm 02:43 PM

Conventions de dénomination en PHP : Comment utiliser la notation camelCase pour nommer des classes, des méthodes et des variables En programmation PHP, de bonnes conventions de dénomination sont une pratique de codage importante. Il améliore la lisibilité et la maintenabilité du code et rend le travail d'équipe plus fluide. Dans cet article, nous explorerons une convention de dénomination courante : camelCase et fournirons quelques exemples de la façon de l'utiliser en PHP pour nommer des classes, des méthodes et des variables. 1. Qu'est-ce que la nomenclature des cas de chameaux ? CamelCase est une convention de dénomination courante dans laquelle la première lettre de chaque mot est en majuscule,

Erreur PHP : Impossible de déclarer la classe à plusieurs reprises, solution ! Erreur PHP : Impossible de déclarer la classe à plusieurs reprises, solution ! Aug 25, 2023 pm 04:13 PM

Erreur PHP : Impossible de déclarer la classe à plusieurs reprises, solution ! Il est courant que les développeurs rencontrent des problèmes. Dans le développement PHP, nous rencontrons souvent une erreur courante : la classe ne peut pas être déclarée à plusieurs reprises. Ce problème semble simple, mais s’il n’est pas résolu à temps, le code ne s’exécutera pas correctement. Cet article présentera la cause de ce problème et fournira une solution pour votre référence. Lorsque nous définissons une classe dans du code PHP, si la même classe est définie plusieurs fois dans le même fichier ou dans plusieurs fichiers, une erreur indiquant que la classe ne peut pas être déclarée à plusieurs reprises se produira. C'est

Technologie d'emballage et application en PHP Technologie d'emballage et application en PHP Oct 12, 2023 pm 01:43 PM

La technologie d'encapsulation et l'encapsulation d'applications en PHP sont un concept important dans la programmation orientée objet. Elle fait référence à l'encapsulation de données et d'opérations sur les données afin de fournir une interface d'accès unifiée aux programmes externes. En PHP, l'encapsulation peut être réalisée via des modificateurs de contrôle d'accès et des définitions de classe. Cet article présentera la technologie d'encapsulation dans PHP et ses scénarios d'application, et fournira quelques exemples de code spécifiques. 1. Modificateurs de contrôle d'accès encapsulés En PHP, l'encapsulation est principalement réalisée via des modificateurs de contrôle d'accès. PHP fournit trois modificateurs de contrôle d'accès,

'Introduction à la programmation orientée objet en PHP : du concept à la pratique' 'Introduction à la programmation orientée objet en PHP : du concept à la pratique' Feb 25, 2024 pm 09:04 PM

Qu'est-ce que la programmation orientée objet ? La programmation orientée objet (POO) est un paradigme de programmation qui résume les entités du monde réel en classes et utilise des objets pour représenter ces entités. Les classes définissent les propriétés et le comportement des objets, et les objets instancient les classes. Le principal avantage de la POO est qu’elle rend le code plus facile à comprendre, à maintenir et à réutiliser. Concepts de base de la POO Les principaux concepts de la POO incluent les classes, les objets, les propriétés et les méthodes. Une classe est le modèle d'un objet, qui définit ses propriétés et son comportement. Un objet est une instance d’une classe et possède toutes les propriétés et comportements de la classe. Les propriétés sont les caractéristiques d'un objet pouvant stocker des données. Les méthodes sont des fonctions d'un objet qui peuvent opérer sur les données de l'objet. Avantages de la POO Les principaux avantages de la POO sont les suivants : Réutilisabilité : la POO peut rendre le code plus

Classe introuvable en Java – Comment résoudre java.lang.ClassNotFoundException ? Classe introuvable en Java – Comment résoudre java.lang.ClassNotFoundException ? Jun 25, 2023 am 10:37 AM

Pendant le processus de développement Java, vous rencontrerez parfois une erreur : java.lang.ClassNotFoundException. Il indique que le fichier de classe requis est introuvable dans la machine virtuelle Java (JVM). Cette erreur empêchera le programme de fonctionner correctement et, si elle n'est pas résolue à temps, retardera la progression du développement. Cet article présentera les raisons et les solutions pour les classes introuvables en Java. 1. Raison 1. Le chemin de classe est erroné En Java, le chemin du package et le chemin de classe sont très importants. Si le chemin de classe est mal défini ou si le fichier de classe

Mécanisme de chargement automatique en PHP Mécanisme de chargement automatique en PHP Jun 18, 2023 pm 01:11 PM

À mesure que le langage PHP devient de plus en plus populaire, les développeurs doivent utiliser de plus en plus de classes et de fonctions. Lorsqu'un projet grandit, l'introduction manuelle de toutes les dépendances devient peu pratique. À l’heure actuelle, un mécanisme de chargement automatique est nécessaire pour simplifier le processus de développement et de maintenance du code. Le mécanisme de chargement automatique est une fonctionnalité du langage PHP qui peut charger automatiquement les classes et interfaces requises au moment de l'exécution et réduire l'introduction manuelle des fichiers de classe. De cette façon, les programmeurs peuvent se concentrer sur le développement du code et réduire les erreurs et la perte de temps causées par une introduction manuelle fastidieuse aux cours. En PHP, généralement

Comment utiliser les attributs pour ajouter des annotations personnalisées aux classes en PHP8 ? Comment utiliser les attributs pour ajouter des annotations personnalisées aux classes en PHP8 ? Oct 18, 2023 am 10:16 AM

Comment utiliser les attributs pour ajouter des annotations personnalisées aux classes en PHP8 ? Les annotations personnalisées sont un moyen d'ajouter des métadonnées à une classe ou une méthode, ce qui peut nous aider à obtenir et à traiter des informations supplémentaires sur une classe ou une méthode spécifique au moment de l'exécution. En PHP8, le concept d'attributs a été introduit, ce qui nous permet d'ajouter facilement des annotations personnalisées aux classes. Cet article explique comment utiliser les attributs pour implémenter des annotations personnalisées pour les classes en PHP8 et fournit des exemples de code spécifiques. En PHP8, depuis

Conseils d'encapsulation de code PHP : comment utiliser des classes et des objets pour encapsuler des blocs de code réutilisables Conseils d'encapsulation de code PHP : comment utiliser des classes et des objets pour encapsuler des blocs de code réutilisables Jul 29, 2023 pm 11:19 PM

Compétences en encapsulation de code PHP : Comment utiliser des classes et des objets pour encapsuler des blocs de code réutilisables Résumé : Au cours du développement, nous rencontrons souvent des blocs de code qui doivent être réutilisés. Afin d'améliorer la maintenabilité et la réutilisabilité du code, nous pouvons utiliser des techniques d'encapsulation de classes et d'objets pour encapsuler ces blocs de code. Cet article explique comment utiliser des classes et des objets pour encapsuler des blocs de code réutilisables et fournit plusieurs exemples de code concrets. Avantages de l'utilisation de classes et d'objets à encapsuler L'utilisation de classes et d'objets à encapsuler présente les avantages suivants : 1.1 Améliorer la maintenabilité du code en réduisant la duplication.

See all articles