Functie spl_autoload_register
De functie spl_autoload_register registreert de gegeven functie als implementatie van de methode voor automatisch laden van klassen. Wanneer PHP een niet-gedefinieerde klasse tegenkomt, roept het achtereenvolgens alle geregistreerde autoload-functies aan, waarbij de klassenaam wordt doorgegeven. De eerste parameter is de callback-functie voor autoloaden, de tweede parameter (optioneel) - of een uitzondering moet worden gegenereerd bij een fout, de derde parameter (optioneel) - of de functie aan het begin van de wachtrij moet worden toegevoegd.
Syntaxis
spl_autoload_register(callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]);
Voorbeeld
Eenvoudige registratie van een autoload-functie:
<?php
function my_autoloader($class) {
include 'classes/' . $class . '.php';
}
spl_autoload_register('my_autoloader');
// Nu is het mogelijk om objecten aan te maken zonder expliciete include
$obj = new MyClass();
?>
Voorbeeld
Gebruik van een anonieme functie voor autoloaden:
<?php
spl_autoload_register(function ($class) {
include 'lib/' . str_replace('\\', '/', $class) . '.php';
});
$obj = new Some\Namespace\MyClass();
?>
Voorbeeld
Registratie van meerdere autoload-functies:
<?php
spl_autoload_register('autoloader1');
spl_autoload_register('autoloader2');
spl_autoload_register('autoloader3', true, true); // Toevoegen aan het begin van de wachtrij
// PHP zal de functies in volgorde aanroepen: autoloader3, autoloader1, autoloader2
$obj = new MyClass();
?>
Zie ook
-
de functie spl_autoload_functions,
die de autoloaders teruggeeft -
de functie spl_autoload_unregister,
die een autoloader verwijdert -
de functie class_exists,
die een klasse controleert