Autoloading Classes
Many developers writing object-oriented applications create
one PHP source file per class definition. One of the biggest
annoyances is having to write a long list of needed includes
at the beginning of each script (one for each class).
The spl_autoload_register function registers any number of
autoloaders, enabling for classes and interfaces to be automatically loaded
if they are currently not defined. By registering autoloaders, PHP is given
a last chance to load the class or interface before it fails with an error.
Prior to PHP 8.0.0, it was possible to use __autoload
to autoload classes and interfaces. However, it is a less flexible
alternative to spl_autoload_register and
__autoload is deprecated as of PHP 7.2.0, and removed
as of PHP 8.0.0.
Autoload example
This example attempts to load the classes MyClass1
and MyClass2 from the files MyClass1.php
and MyClass2.php respectively.
]]>
Autoload other example
This example attempts to load the interface ITest.
]]>
Autoloading with exception handling
This example throws an exception and demonstrates the try/catch block.
getMessage(), "\n";
}
?>
]]>
&example.outputs;
Autoloading with exception handling - Missing custom exception
This example throws an exception for a non-loadable, custom exception.
getMessage(), "\n";
}
?>
]]>
&example.outputs;
&reftitle.seealso;
unserializeunserialize_callback_funcspl_autoload_registerspl_autoload__autoload