Maison >développement back-end >tutoriel php >Comment PHP charge-t-il automatiquement les deux fonctions __autoload et apl_autoload_register ?
Cet article explique comment charger automatiquement les deux fonctions __autoload et apl_autoload_register via php ?
Lors de l'utilisation du framework ThinkPHP, il est utile de vérifier son code source pour utiliser les deux fonctions __autoload et apl_autoload_register, et ces deux fonctions sont utilisées pour le chargement automatique
Leurs principales fonctions sont : Quand votre fichier de code source utilise un fichier qui n'a pas été chargé, ces deux fonctions seront déclenchées pour charger le fichier déchargé
La fonction __autoload de php est une fonction magique Avant que cette fonction n'apparaisse, Si un fichier PHP référence 100 objets. , alors le fichier doit utiliser include ou require pour introduire 100 fichiers de classe, ce qui rendra le fichier PHP extrêmement volumineux. Il y a donc cette fonction __autoload.
Quand la fonction __autoload est-elle appelée ?
Lorsque le mot-clé new est utilisé pour instancier un objet dans un fichier php, si la classe n'est pas définie dans ce fichier php, la fonction __autoload sera déclenchée. A ce moment, vous pourrez introduire la définition du. fichier php de classe, puis il peut être instancié avec succès. (Remarque : Si l'objet à instancier a été trouvé dans ce fichier et que la définition de la classe a été trouvée, la fonction __autoload ne sera pas déclenchée)
#Animal.php
<!--?php class Animal{} ?--> #main.php <!--?php function __autoload($classname){ $classpath = "{$classname}.php"; if(file_exists($classpath)){ require_once($classpath); }else{ echo $classpath." not be found!"; } } $ani = new Animal(); ?--> 如上述两个文件,运行php main.php (1)运行到new Animal()时,发现 class Animal没有定义; (2)触发了__autoload函数,该函数引进了Animal.php文件; (3)实例化成功。 好了,了解完了__autoload函数的作用,再来看看spl_autoload_register函数的作用。 spl_autoload_register函数的作用就是将自定义函数设置替换为__autoload函数(注意:当文件中同时出现__autoload和spl_autoload_register时,以spl_autoload_register为准) 那么将main.php改成如下也有同样的作用: #main.php <!--?php function myLoad($classname){ $classpath = "{$classname}.php"; if(file_exists($classpath)){ require_once($classpath); }else{ echo $classpath." not be found!"; } } spl_autoload_register("myLoad"); $ani = new Animal(); ?-->
Cet article explique comment charger automatiquement les deux fonctions __autoload et apl_autoload_register via PHP Pour plus de contenu connexe, veuillez faire attention au site Web chinois de PHP.
Recommandations associées :
Méthodes de gestion et d'implémentation des erreurs PHP
PHP obtient la valeur spécifiée dans le tableau au niveau du comment plusieurs colonnes ?
Apprentissage de base de PHP : tableaux PHP et structures de données
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!