Heim  >  Artikel  >  Backend-Entwicklung  >  Ausführliche Erläuterung, wie man spl_autoload_register verwendet, um das automatische Laden von Instanzen zu implementieren

Ausführliche Erläuterung, wie man spl_autoload_register verwendet, um das automatische Laden von Instanzen zu implementieren

伊谢尔伦
伊谢尔伦Original
2017-07-01 09:45:502754Durchsuche

spl_autoload_register()Die Funktion sollte eine der am häufigsten verwendeten und Kernfunktionen des Mainstream-Frameworks sein. Sie kann die automatische Registrierung von Funktionen und Klassen realisieren und ähnliche Funktionen implementieren zur Funktion autoload() Sie vereinfacht das Aufrufen und Laden von Klassen und verbessert die Arbeitseffizienz

Hier werden wir anhand eines Experiments über einige Funktionen dieser Funktion sprechen.

Funktionsprototyp
bool spl_autoload_register ([ callback $autoload_function [, bool $throw = true [, bool $prepend = false ]]] )

Version kompatibel
PHP 5 > ;= 5.1.2

Experimenteller Prozess
Der erste Schritt besteht darin, die Funktion spl_autoload_register() zu verwenden, um die Methode load() zu registrieren

Der Code lautet wie folgt:

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


Der Code der lib.php-Datei lautet wie folgt

Der Code lautet wie folgt:

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

Erklärung: Die lib.php file ist eine className-Klasse und eine onlyMethod-Funktion

Der zweite Schritt besteht darin, die automatische Ladeklasse aufzurufen

Der Code lautet wie folgt:

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

Ausgabe:

a method in class 
method only

Anweisungen: Instanziieren Sie die Klasse className, rufen Sie die Funktion class method() auf und rufen Sie gleichzeitig die Methode onlyMethod() auf. Die Ausgabe ist normal und es treten keine Fehler auf

Der dritte Schritt besteht darin, die Funktion direkt aufzurufen

onlyMethod();


Hinweis: Es gibt keine instanziierte Klasse, rufen Sie die Funktion onlyMethod() direkt auf die lib.php-Datei
Ausgabe:
Schwerwiegender Fehler: Aufruf der undefinierten Funktion onlyMethod() in '...( Pfad weglassen)'

Im vierten Schritt instanziieren Sie die className-Klasse und dann direkt aufrufen

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

Ausgabe: nur Methode

Aus dem obigen vierstufigen Experiment wurde festgestellt, dass die darin enthaltene Klasse instanziiert werden muss, wenn die geladene Datei eine Funktion enthält Wenn Sie es verwenden, tritt sonst ein abnormaler Aufruf einer undefinierten Funktion auf. Bitte achten Sie darauf, wenn Sie es verwenden.

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung, wie man spl_autoload_register verwendet, um das automatische Laden von Instanzen zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn