Funzione spl_autoload_register

La funzione spl_autoload_register registra una determinata funzione come implementazione del metodo di autocaricamento delle classi. Quando PHP incontra una classe non definita, chiama sequenzialmente tutte le funzioni di autocaricamento registrate, passando loro il nome della classe. Il primo parametro è la funzione callback per l'autocaricamento, il secondo parametro (opzionale) indica se lanciare un'eccezione in caso di errore, il terzo parametro (opzionale) indica se aggiungere la funzione all'inizio della coda.

Sintassi

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

Esempio

Semplice registrazione di una funzione di autocaricamento:

php<?php
  function my_autoloader($class) {
    include 'classes/' . $class . '.php';
  }
  
  spl_autoload_register('my_autoloader');
  
  // Ora è possibile creare oggetti senza un include esplicito
  $obj = new MyClass();
?>

Esempio

Utilizzo di una funzione anonima per l'autocaricamento:

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

Esempio

Registrazione di più funzioni di autocaricamento:

php<?php
  spl_autoload_register('autoloader1');
  spl_autoload_register('autoloader2');
  spl_autoload_register('autoloader3', true, true); // Aggiungiamo all'inizio della coda
  
  // PHP chiamerà le funzioni nell'ordine: autoloader3, autoloader1, autoloader2
  $obj = new MyClass();
?>

Vedi anche