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
spl_autoload_register(callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]);
Esempio
Semplice registrazione di una funzione di autocaricamento:
<?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
spl_autoload_register(function ($class) {
include 'lib/' . str_replace('\\', '/', $class) . '.php';
});
$obj = new Some\Namespace\MyClass();
?>
Esempio
Registrazione di più funzioni di autocaricamento:
<?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
-
la funzione spl_autoload_functions,
che restituisce gli autocaricatori -
la funzione spl_autoload_unregister,
che rimuove un autocaricatore -
la funzione class_exists,
che verifica una classe