Sunday, December 14, 2025
HomeLanguagesHow to load classes in PHP ?

How to load classes in PHP ?

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




<?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




<?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.
RELATED ARTICLES

Most Popular

Dominic
32447 POSTS0 COMMENTS
Milvus
105 POSTS0 COMMENTS
Nango Kala
6816 POSTS0 COMMENTS
Nicole Veronica
11953 POSTS0 COMMENTS
Nokonwaba Nkukhwana
12031 POSTS0 COMMENTS
Shaida Kate Naidoo
6951 POSTS0 COMMENTS
Ted Musemwa
7202 POSTS0 COMMENTS
Thapelo Manthata
6899 POSTS0 COMMENTS
Umr Jansen
6882 POSTS0 COMMENTS