Funksjonen spl_autoload_register

Funksjonen spl_autoload_register registrerer en gitt funksjon som implementasjon av metoden for automatisk lasting av klasser. Når PHP møter en udefinert klasse, kaller den sekvensielt alle registrerte funksjoner for automatisk lasting, og sender dem klassenavnet. Den første parameteren er en callback-funksjon for automatisk lasting, den andre parameteren (valgfri) er om det skal kastes et unntak ved feil, den tredje parameteren (valgfri) er om funksjonen skal legges til i starten av køen.

Syntaks

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

Eksempel

Enkel registrering av en funksjon for automatisk lasting:

php<?php
  function my_autoloader($class) {
    include 'classes/' . $class . '.php';
  }
  
  spl_autoload_register('my_autoloader');
  
  // Nå kan man opprette objekter uten eksplisitt include
  $obj = new MyClass();
?>

Eksempel

Bruk av anonym funksjon for automatisk lasting:

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

Eksempel

Registrering av flere funksjoner for automatisk lasting:

php<?php
  spl_autoload_register('autoloader1');
  spl_autoload_register('autoloader2');
  spl_autoload_register('autoloader3', true, true); // Legger til i starten av køen
  
  // PHP vil kalle funksjonene i rekkefølgen: autoloader3, autoloader1, autoloader2
  $obj = new MyClass();
?>

Se også