PHP load classes are used for declaring its object etc. in object oriented applications. PHP parser loads it automatically, if it is registered with spl_autoload_register() function. PHP parser gets the least chance to load class/interface before emitting an error.
Syntax:
spl_autoload_register(function ($class_name) {
include $class_name . '.php';
});
The class will be loaded from its corresponding ".php" file when it comes into use for the first time.
Autoloading
Example:
<?php
spl_autoload_register(function ($class_name) {
include $class_name . '.php';
});
$obj = new mytest1();
$obj2 = new mytest2();
echo "Objects of mytest1 and mytest2 "
+ "class created successfully";
?>
Output:
Objects of test1 and test2 class created successfully.
Note: If the corresponding ".php" file having class definition is not found, the following error will be displayed.
Warning: include(): Failed opening 'test10.php' for inclusion (include_path='C:\xampp\php\PEAR') in line 4 PHP Fatal error: Uncaught Error: Class 'test10' not found.
Autoloading with exception handling
Example:
<?php
spl_autoload_register(function($className) {
$file = $className . '.php';
if (file_exists($file)) {
echo "$file included\n";
include $file;
}
else {
throw new Exception("Unable to load $className.");
}
});
try {
$obj1 = new test1();
$obj2 = new test10();
} catch (Exception $e) {
echo $e->getMessage(), "\n";
}
?>
Output:
Unable to load test1.