Funktion spl_autoload_register

Die Funktion spl_autoload_register registriert eine gegebene Funktion als Implementierung der Methode zum automatischen Laden von Klassen. Wenn PHP auf eine undefinierte Klasse stößt, ruft es nacheinander alle registrierten Autoload-Funktionen auf und übergibt ihnen den Klassennamen. Der erste Parameter ist die Callback-Funktion für das Autoloading, der zweite Parameter (optional) - ob eine Exception bei einem Fehler ausgelöst werden soll, der dritte Parameter (optional) - ob die Funktion am Anfang der Warteschlange hinzugefügt werden soll.

Syntax

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

Beispiel

Einfache Registrierung einer Autoload-Funktion:

php<?php
  function my_autoloader($class) {
    include 'classes/' . $class . '.php';
  }
  
  spl_autoload_register('my_autoloader');
  
  // Jetzt können Objekte ohne explizites include erstellt werden
  $obj = new MyClass();
?>

Beispiel

Verwendung einer anonymen Funktion für Autoloading:

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

Beispiel

Registrierung mehrerer Autoload-Funktionen:

php<?php
  spl_autoload_register('autoloader1');
  spl_autoload_register('autoloader2');
  spl_autoload_register('autoloader3', true, true); // Am Anfang der Warteschlange hinzufügen
  
  // PHP ruft die Funktionen in der Reihenfolge auf: autoloader3, autoloader1, autoloader2
  $obj = new MyClass();
?>

Siehe auch