Welcome to php club

PHP FAQ from PHPclub.ru: PHP5/Autoload ...

Начало | Каталог | Изменения | НовыеКомментарии | Вам запрещён доступПользователи | Вам запрещён доступРегистрация | Вход:  Пароль:  

Магическая функция __autoload()

Краткое описание

При попытке создать объект несуществующего класса в PHP4, выбрасывалась фатальная ошибка, которую нельзя было перехватить error_handler-ом. В PHP5 перед этим идёт попытка вызова __autoload(), который должен попытаться подключить такой класс. Имя этого класса будет передано в качестве единственного аргумента этой функции.
Самым банальным, но наиболее ярким примером использования является простейшая реализация плагинов, где функция __autoload() будет подключать файлы с именем класса из нужной директории, что автоматизирует подключение расширений — нужно просто попытаться создать объект класса, файл подключится сам. Кроме этого, __autoload() вызывается функцией class_exists() (вызов можно подавить вторым параметром равным false).
Пример:

<?php
function __autoload($className) {
    echo
"Загружаем класс $className\n";
    class
ClassName {}
}

$object = new ClassName();
?>

Результат:

Проблемы с обратной совместимостью

Старый код без функции __autoload() должен работать без изменений.

Дополнительные сведения

Описание в оригинальной документации: http://www.php.net/oop5.autoload


 
Комментариев нет. [Показать комментарии/форму]