Maison > développement back-end > tutoriel php > PHP implémente le chargement automatique des fonctions associées

PHP implémente le chargement automatique des fonctions associées

小云云
Libérer: 2023-03-21 16:38:01
original
1594 Les gens l'ont consulté

Lorsque PHP est exécuté, s'il s'avère qu'une classe doit être utilisée (à condition qu'il s'agisse d'une opération liée à cette classe), à ​​ce moment, le script actuel n'a pas le code de définition de cette classe ! Ensuite, PHP appellera automatiquement une fonction nommée __autoload() à ce moment-là ! Et, lors de l'appel, un paramètre sera transmis à la fonction, qui est le nom de la classe actuellement requise.

#自动加载 函数function __aotuload($class_name){
    if(!file_exists("./".$class_name.".class.php")){
        include "./".$class_name.".class.php";
    }else{
        die("系统错误,没有找到相关的类!");
    }
}
Copier après la connexion

Enregistrez d'autres fonctions de chargement automatique

Généralement, la fonction de chargement automatique du système est __autoload() Cependant, à mesure que le projet se développe, plusieurs chargeurs automatiques peuvent apparaître Fonction, par exemple, en cas de chargement automatique. apparaît dans le fichier chargé, le problème des noms de fonctions en double se posera !

Nous n'utilisons pas du tout la fonction __autoload, mais enregistrons la propre fonction de chargement automatique de l'utilisateur pour éviter la situation ci-dessus !

#注册其他的自动加载函数 解决自动加载函数重名问题function f1($class_name){
    if(!file_exists("./".$class_name.".class.php")){
        include "./".$class_name.".class.php";
    }else{
        die("系统错误,没有找到相关的类!");
    }
}
spl_autoload_register('f1');
Copier après la connexion

Vous devez faire attention aux points suivants :

1. L'inscription doit avoir lieu avant qu'un certain cours soit requis !

2. Vous pouvez enregistrer plusieurs fonctions de chargement automatique. Avant que le fichier de classe requis ne soit chargé avec succès, il sera exécuté dans l'ordre d'enregistrement jusqu'à ce qu'il soit trouvé !

3. Une fois les autres fonctions de chargement automatique enregistrées, la fonction __autoload par défaut du système deviendra invalide !

À l'heure actuelle, si vous souhaitez continuer à utiliser la fonction __autoload, vous devez la réenregistrer comme les autres fonctions ordinaires !

Enregistrer la méthode de chargement automatique

Dans le style de programmation orientée objet, nous encapsulons généralement les fonctions de chargement automatique définies par l'utilisateur dans une classe !

Enregistrement des méthodes statiques

La forme syntaxique est :

spl_autoload_register(array('class name', 'method name'));

In De plus, il existe également une forme relativement simple d'enregistrement des méthodes statiques :

spl_autoload_register('class name::method name');

Enregistrement des méthodes non statiques

À ce stade, enregistrez-vous. Les étapes sont les suivantes :

1, Tout d'abord, instanciez un objet

2, puis enregistrez-le en utilisant spl_autoload_register(). la fonction est la suivante :

spl_autoload_register( array(object variable, 'method name'));

#注册自动加载方法class Common {
    public static function autoload($class_name){
        if(!file_exists("./".$class_name.".class.php")){
            include "./".$class_name.".class.php";
        }else{
            die("系统错误,没有找到相关的类!");
        }
    }
}
//spl_autoload_register("Common::autoload");
spl_autoload_register(array("Common","autoload"));
Copier après la connexion

Recommandations associées :

code d'implémentation de PHP fonction de routage simple et de chargement automatique de classe

Explication détaillée du chargement automatique des fichiers PHP

Résumé détaillé du chargement automatique PHP

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal