Função spl_autoload_register

A função spl_autoload_register registra uma determinada função como implementação do método de carregamento automático de classes. Quando o PHP encontra uma classe não definida, ele chama sequencialmente todas as funções de carregamento automático registradas, passando o nome da classe. O primeiro parâmetro é a função callback para carregamento automático, o segundo parâmetro (opcional) é se deve lançar uma exceção em caso de erro, o terceiro parâmetro (opcional) é se deve adicionar a função no início da fila.

Sintaxe

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

Exemplo

Registro simples de uma função de carregamento automático:

php<?php
  function my_autoloader($class) {
    include 'classes/' . $class . '.php';
  }
  
  spl_autoload_register('my_autoloader');
  
  // Agora é possível criar objetos sem include explícito
  $obj = new MyClass();
?>

Exemplo

Usando função anônima para carregamento automático:

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

Exemplo

Registrando múltiplas funções de carregamento automático:

php<?php
  spl_autoload_register('autoloader1');
  spl_autoload_register('autoloader2');
  spl_autoload_register('autoloader3', true, true); // Adiciona no início da fila
  
  // O PHP chamará as funções na ordem: autoloader3, autoloader1, autoloader2
  $obj = new MyClass();
?>

Veja também