United State: +1 (410) 202-8855 | India +91 708-282-5481 hi@satyapsharma.com

Autoload is a new feature introduced in PHP5 that you don’t have to explicitly require or include a PHP script file that contains the class being used any more but it will be automatically loaded or included when needed. For example, with PHP4 you would have to write something like this:

require_once("foo.php"); // foo.php contains the class Foo

myFoo = new Foo();

Every time you need to create an instance of some class you have to include the particular PHP file that contains that class. It is not just extra work but also make it more error-prone. It can be a challenge to manage the whole lot of include or require lines as well. That’s where the autoload feature of PHP5 kicks in. Instead of including a particular PHP script every time we need it, we create a very simple function at the beginning of the current file so that PHP automatically knows what file to include when we need a particular class. For example:

function __autoload($class_name) {

require_once 'classes/'. $class_name. '.php';}

$obj1 = new MyClass1(); // PHP automatically requires 'classes/MyClass1.php'
$obj2 = new MyClass2(); // PHP automatically requires 'classes/MyClass1.php'

As illustrated by the example above, with the simple function highlighted in bold, you will never have to explicitly include any PHP scripts again. Instead, you will specify the place to look for the corresponding script file to include and PHP will do the task for you. In this example, the name of the class “MyClass1” is passed to the function __autoload as variable $class_name and in the body of the function, it specifies the location of the exact PHP file to include, namely, in the ‘classes’ directory and the name of the file is the same as that of the class, $class_name. ‘.php’.

Usually, the __autoload function should be placed in a site wide configuration file which is included at the beginning of all PHP files of your website so it will only be written once. This way, all the classes of your website or application can be better named and organized.

Source by Yang Yang