Funktion spl_autoload_register
Die Funktion spl_autoload_register registriert eine gegebene Funktion als Implementierung der Methode zum automatischen Laden von Klassen. Wenn PHP auf eine undefinierte Klasse stößt, ruft es nacheinander alle registrierten Autoload-Funktionen auf und übergibt ihnen den Klassennamen. Der erste Parameter ist die Callback-Funktion für das Autoloading, der zweite Parameter (optional) - ob eine Exception bei einem Fehler ausgelöst werden soll, der dritte Parameter (optional) - ob die Funktion am Anfang der Warteschlange hinzugefügt werden soll.
Syntax
spl_autoload_register(callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]);
Beispiel
Einfache Registrierung einer Autoload-Funktion:
<?php
function my_autoloader($class) {
include 'classes/' . $class . '.php';
}
spl_autoload_register('my_autoloader');
// Jetzt können Objekte ohne explizites include erstellt werden
$obj = new MyClass();
?>
Beispiel
Verwendung einer anonymen Funktion für Autoloading:
<?php
spl_autoload_register(function ($class) {
include 'lib/' . str_replace('\\', '/', $class) . '.php';
});
$obj = new Some\Namespace\MyClass();
?>
Beispiel
Registrierung mehrerer Autoload-Funktionen:
<?php
spl_autoload_register('autoloader1');
spl_autoload_register('autoloader2');
spl_autoload_register('autoloader3', true, true); // Am Anfang der Warteschlange hinzufügen
// PHP ruft die Funktionen in der Reihenfolge auf: autoloader3, autoloader1, autoloader2
$obj = new MyClass();
?>
Siehe auch
-
die Funktion spl_autoload_functions,
die die Autoloader zurückgibt -
die Funktion spl_autoload_unregister,
die einen Autoloader entfernt -
die Funktion class_exists,
die eine Klasse prüft