Funktio spl_autoload_register
Funktio spl_autoload_register rekisteröi annetun funktion automaattisen luokkien latauksen toteutukseksi. Kun PHP kohtaa määrittelemättömän luokan, se kutsuu peräkkäin kaikki rekisteröidyt autoload-funktiot, välittäen niille luokan nimen. Ensimmäinen parametri on callback-funktio autoloadausta varten, toinen parametri (valinnainen) - heitetäänkö poikkeus virhetilanteessa, kolmas parametri (valinnainen) - lisätäänkö funktio jonon alkuun.
Syntaksi
spl_autoload_register(callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]);
Esimerkki
Yksinkertainen autoload-funktion rekisteröinti:
<?php
function my_autoloader($class) {
include 'classes/' . $class . '.php';
}
spl_autoload_register('my_autoloader');
// Nyt voi luoda olioita ilman eksplisiittistä includea
$obj = new MyClass();
?>
Esimerkki
Anonyymifunktion käyttö autoloadaukseen:
<?php
spl_autoload_register(function ($class) {
include 'lib/' . str_replace('\\', '/', $class) . '.php';
});
$obj = new Some\Namespace\MyClass();
?>
Esimerkki
Usean autoload-funktion rekisteröinti:
<?php
spl_autoload_register('autoloader1');
spl_autoload_register('autoloader2');
spl_autoload_register('autoloader3', true, true); // Lisätään jonon alkuun
// PHP kutsuu funktiot järjestyksessä: autoloader3, autoloader1, autoloader2
$obj = new MyClass();
?>
Katso myös
-
funktion spl_autoload_functions,
joka palauttaa autoloaderit -
funktion spl_autoload_unregister,
joka poistaa autoloaderin -
funktion class_exists,
joka tarkistaa luokan