Cet article présente principalement le principe et l'utilisation du mécanisme de chargement automatique orienté objet de PHP. Il analyse les principes, les fonctions associées et les précautions du mécanisme de chargement automatique orienté objet de PHP sous forme d'exemples.
Lorsque vous apprendrez le PHP orienté objet, vous connaîtrez beaucoup de « sucre syntaxique », c'est-à-dire des méthodes magiques. Il existe une méthode magique pour ajouter un chargement automatique, appelée : __autoload(); Une classe A est instanciée, mais il n'y a pas de code lié à la classe A dans le bloc de code Normalement, une erreur devrait être signalée car la classe A correspondante ne l'est pas. trouvé Cependant, si vous utilisez la fonction de chargement automatique autoload(), le résultat sera ok. Cela peut-il être différent
De l'organigramme ci-dessus :
Quand. En instanciant une nouvelle classe sur la page, il trouvera d'abord le code de classe correspondant dans le répertoire courant. Sinon, allez dans la pile de chargement automatique pour trouver la fonction de chargement automatique correspondante. S'il y en a une, la classe sera automatiquement chargée. non, une erreur sera générée.<?php function __autoload($classname) { $filename = "./". $classname .".php"; include_once($filename); } new a();
Et si j'ai plusieurs fonctions chargées automatiquement !
PHP fournit une fonction SPL
Officiel : spl_autoload_register() fournit un moyen plus flexible d'implémenter le chargement automatique de cours. Par conséquent, l’utilisation de la fonction __autoload() n’est plus recommandée et pourrait être obsolète dans une version future.
Cependant, cette fonction est utilisée à la fois dans PHPexecl et PHPWord pour le chargement automatique, mais il y a une différence entre les deux ! ! Méthode de chargement automatique PHPexecl (L'auteur ici est probablement un ingénieur Python, sinon il n'y a pas d'accolades, et l'indentation est utilisée pour indiquer
)spl_autoload_register(); // 注册autoload函数
public static function Register() { $functions = spl_autoload_functions(); foreach ( $functions as $function) spl_autoload_unregister($function); $functions = array_merge(array(array('PHPExcel_Autoloader','Load')),$functions); foreach ( $functions as $function) $x = spl_autoload_register($function); return $x; }
public static function Register() { return spl_autoload_register(array('PHPWord_Autoloader', 'Load')); }
Résumé : Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.
Recommandations associées :
Implémentation PHP de la méthode XML native de manipulation d'objets DOM phpimplémentation Fonction de remboursement du paiement WeChat
phpPaiement sur site Web informatique de la série Alipay
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!