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

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

Voorbeeld

Eenvoudige registratie van een autoload-functie:

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

Voorbeeld

Registratie van meerdere autoload-functies:

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