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; unserialize unserialize_callback_func spl_autoload_register spl_autoload __autoload