Funkcija spl_autoload_register
Funkcija spl_autoload_register registruoja nurodytą funkciją kaip autokrovimo metodo implementaciją. Kai PHP susiduria su neapibrėžta klase, jis iš eilės iškviečia visas registruotas autokrovimo funkcijas, perduodamas joms klasės pavadinimą. Pirmasis parametras - callback funkcija autokrovimui, antrasis parametras (neprivalomas) - ar mesti išimtį klaidos atveju, trečiasis parametras (neprivalomas) - ar pridėti funkciją į eilės pradžią.
Sintaksė
spl_autoload_register(callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]);
Pavyzdys
Paprastas autokrovimo funkcijos registravimas:
<?php
function my_autoloader($class) {
include 'classes/' . $class . '.php';
}
spl_autoload_register('my_autoloader');
// Dabar galima kurti objektus be aiškaus include
$obj = new MyClass();
?>
Pavyzdys
Anoniminės funkcijos naudojimas autokrovimui:
<?php
spl_autoload_register(function ($class) {
include 'lib/' . str_replace('\\', '/', $class) . '.php';
});
$obj = new Some\Namespace\MyClass();
?>
Pavyzdys
Kelių autokrovimo funkcijų registravimas:
<?php
spl_autoload_register('autoloader1');
spl_autoload_register('autoloader2');
spl_autoload_register('autoloader3', true, true); // Pridedame į eilės pradžią
// PHP iškvies funkcijas tokia tvarka: autoloader3, autoloader1, autoloader2
$obj = new MyClass();
?>
Taip pat žiūrėkite
-
funkciją spl_autoload_functions,
kuri grąžina autokroviklius -
funkciją spl_autoload_unregister,
kuri pašalina autokroviklį -
funkciją class_exists,
kuri tikrina klasę