Автоматично-зареждащи се обекти

Много разработчици на обектно-ориентирани приложения създават по един PHP файл за всеки клас. Едно от най-досадните неща е създаването на дълъг списък на файловете за включване в началото на всеки скрипт (по един за всеки клас).

В PHP 5 това вече не е необходимо. Можете да дефинирате функция __autoload, която автоматично се извиква в случай, че се опитате да използвате клас, който все още не е дефиниран. Извикването на тази функция е последната възможност на скриптовата машина да зареди този клас преди да бъде генерирана фатална грешка.

Забележка: Изключения, хвърлени от функцията __autoload, не могат да бъдат хванати в catch блока, в следствие на което се генерира фатална грешка.

Забележка: Автоматичното зареждане е не е достъпно при използване на PHP в интерактивен режим.

Пример 19-6. Пример за автоматично зареждане

В този пример се прави опит да се заредят класовете MyClass1 и MyClass2 от файловете MyClass1.php и съответно - MyClass2.php.

<?php
function __autoload($class_name) {
    require_once $class_name . '.php';
}

$obj  = new MyClass1();
$obj2 = new MyClass2(); 
?>