Función spl_autoload_register

La función spl_autoload_register registra una función dada como implementación del método de autocarga de clases. Cuando PHP encuentra una clase no definida, llama secuencialmente a todas las funciones de autocarga registradas, pasándoles el nombre de la clase. El primer parámetro es una función callback para la autocarga, el segundo parámetro (opcional) es si lanzar una excepción en caso de error, el tercer parámetro (opcional) es si añadir la función al principio de la cola.

Sintaxis

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

Ejemplo

Registro simple de una función de autocarga:

php<?php
  function my_autoloader($class) {
    include 'classes/' . $class . '.php';
  }
  
  spl_autoload_register('my_autoloader');
  
  // Ahora se pueden crear objetos sin include explícito
  $obj = new MyClass();
?>

Ejemplo

Uso de una función anónima para la autocarga:

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

Ejemplo

Registro de múltiples funciones de autocarga:

php<?php
  spl_autoload_register('autoloader1');
  spl_autoload_register('autoloader2');
  spl_autoload_register('autoloader3', true, true); // Añadimos al principio de la cola
  
  // PHP llamará a las funciones en el orden: autoloader3, autoloader1, autoloader2
  $obj = new MyClass();
?>

Véase también