Monday, December 22, 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
32456 POSTS0 COMMENTS
Milvus
111 POSTS0 COMMENTS
Nango Kala
6823 POSTS0 COMMENTS
Nicole Veronica
11958 POSTS0 COMMENTS
Nokonwaba Nkukhwana
12038 POSTS0 COMMENTS
Shaida Kate Naidoo
6958 POSTS0 COMMENTS
Ted Musemwa
7203 POSTS0 COMMENTS
Thapelo Manthata
6911 POSTS0 COMMENTS
Umr Jansen
6890 POSTS0 COMMENTS