Maison  >  Article  >  développement back-end  >  Explication détaillée de la façon d'utiliser spl_autoload_register pour implémenter le chargement automatique des instances

Explication détaillée de la façon d'utiliser spl_autoload_register pour implémenter le chargement automatique des instances

伊谢尔伦
伊谢尔伦original
2017-07-01 09:45:502751parcourir

spl_autoload_register()La fonction devrait être l'une des fonctions les plus utilisées et les plus essentielles du framework traditionnel. Elle peut réaliser l'enregistrement automatique des fonctions et des classes et implémenter des fonctions similaires. à la fonction autoload(). Elle simplifie l'appel et le chargement des classes et améliore l'efficacité du travail

Nous parlerons ici de certaines fonctionnalités de cette fonction à travers une expérience.

Prototype de fonction
bool spl_autoload_register ([ callback $autoload_function [, bool $throw = true [, bool $prepend = false ]]] )

Version compatible
PHP 5 > ;= 5.1.2

Processus expérimental
La première étape consiste à utiliser la fonction spl_autoload_register() pour enregistrer la méthode load()

Le code est le suivant :

<?php 
function load(){ 
require_once&#39;lib.php&#39;; 
} 
spl_autoload_register(&#39;load&#39;); 
?>


Le code du fichier lib.php est le suivant

Le code est le suivant :

<?php 
class className{ 
function method(){ 
echo &#39;a method in class&#39;; 
} 
} 
function onlyMethod(){ 
echo &#39;method only&#39;; 
} 
?>

Explication : Le lib.php file est une classe className et une fonction onlyMethod

La deuxième étape consiste à appeler la classe de chargement automatique

Le code est le suivant :

$class = new className(); 
$class->method(); 
onlyMethod();

Sortie :

a method in class 
method only

Instructions : Instanciez la classe className, appelez la fonction class method() et appelez la méthode onlyMethod() en même temps. et aucune erreur ne se produit

La troisième étape consiste à appeler la fonction directement

onlyMethod();


Remarque : il n'y a pas de classe instanciée, appelez directement la fonction onlyMethod() dans le fichier lib.php
Sortie :
Erreur fatale : Appel à la fonction non définie onlyMethod() dans '...( Omettre le chemin)'

La quatrième étape, instancier la classe className, puis appeler directement

$class = new className(); 
onlyMethod();

Sortie : méthode uniquement

De l'expérience en quatre étapes ci-dessus Il s'avère que si le fichier chargé contient une fonction, la classe à l'intérieur doit être instanciée lorsque en l'utilisant, sinon une erreur anormale d'appel à une fonction non définie se produira. Veuillez y prêter attention lorsque vous l'utilisez.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn