php spl_autoload_register vs __autoload?
bonjour est-il une diffrence utilisant cette version que nous pouvons utiliser notre propre nom de chargement automatique? est-il une différence de performance? comment font-ils à l'interne le travail?
entre
function __autoload_libraries($class){
include_once 'lib.'.$class.'.php';
}
spl_autoload_register('__autoload_libraries');
vs
function __autoload($class){
include_once 'lib.'.$class.'.php';
}
Vous devez vous connecter pour publier un commentaire.
__autoload
est généralement considérée comme obsolète. Il ne permet qu'une seule autochargeur. Généralement, vous ne devez utiliser__autoload
si vous utilisez une version de PHP sans l'appui d'spl_autload_register
.spl_autoload_register
permet à plusieurs chargeurs automatiques pour être enregistrés, ce qui va être à son tour jusqu'à ce qu'une correspondance de classe/interface/trait est trouvé et chargé, ou jusqu'à ce que tous les auto-chargement des options ont été épuisées. Cela signifie que si vous êtes en utilisant un code de la structure ou d'autres tiers bibliothèques qui mettent en œuvre leurs propres chargeurs automatiques, vous n'avez pas à vous soucier de la vôtre à l'origine de conflits.Mise à JOUR:
__autoload
est maintenant officiellement obsolète depuis PHP 7.2.0, ce qui signifie qu'il est maintenant sur le billot. Si vous voulez que votre code soit compatible avec les futures versions de PHP, vous certainement ne devriez pas utiliser__autoload
Documentation pour les "auto-Chargement de Classes" lit:
Documentation pour spl_autoload_register() lit: