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ė

phpspl_autoload_register(callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]);

Pavyzdys

Paprastas autokrovimo funkcijos registravimas:

php<?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<?php
  spl_autoload_register(function ($class) {
    include 'lib/' . str_replace('\\', '/', $class) . '.php';
  });
  
  $obj = new Some\Namespace\MyClass();
?>

Pavyzdys

Kelių autokrovimo funkcijų registravimas:

php<?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