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("系统错误,没有找到相关的类!"); } }
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');
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 !
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 !
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');
À 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"));
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!