Lors de la conception du développement de programmes orientés objet, un fichier source PHP distinct est généralement créé pour la définition de chaque classe. Lorsque vous essayez d'utiliser une classe non définie, PHP signalera une erreur fatale. Vous pouvez utiliser include ou require pour inclure le fichier source où se trouve une classe, après tout vous savez quelle classe vous souhaitez utiliser. Si une page doit utiliser plusieurs classes, vous devez écrire une longue liste de fichiers d'inclusion au début de la page de script pour inclure toutes les classes nécessaires à cette page. Ce traitement est non seulement fastidieux, mais également sujet aux erreurs.
PHP fournit la fonction de chargement automatique des classes, ce qui permet de gagner du temps en programmation. Lorsque vous essayez d'utiliser une classe dans laquelle PHP n'est pas organisé, il recherche une fonction globale de autoload() (pas une fonction déclarée dans la classe). Si cette fonction existe, PHP l'appellera avec un paramètre, qui est le nom de la classe.
L'exemple suivant illustre comment autoload() est utilisé. Il suppose que chaque fichier du répertoire courant correspond à une classe. Lorsque le script tente de créer une instance de la classe User, PHP exécutera automatiquement la fonction autoload(). . Le script suppose que la classe User est définie dans user.class.php Qu'elle soit appelée en majuscule ou en minuscule, PHP renverra la version minuscule du nom. Par conséquent, lorsque vous travaillez sur un projet, lors de l'organisation et de la définition des noms de fichiers des classes, vous devez suivre certaines règles. Le nom de la classe doit être au centre. Vous pouvez également ajouter un préfixe ou un suffixe unifié au nom de fichier, tel que le nom de la classe. .class.php, xxx_classname.php, classname_xxx.php ou classname.php, etc. Il est recommandé d'utiliser le format "classname.class.php" pour nommer les fichiers de classe.
<?php/* 声明一个自动加载类的魔术方法autoload() */function autoload($className){ //在方法中使用include包含类所在的文件 include(strtolower($className) . ".class.php"); }$obj = new User(); //User类不存在,则自动调用autoload()函数,将类名“User”作为参数传入$obj2 = new shop(); ?>
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!