Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > __autolod() и spl_autoload_register()


Автор: WolfAlone 6.7.2010, 08:56
Здравствуйте уважаемые! Возник вопрос... Использую функцию spl_autoload_register() - она помогает загрузить файл с классом автоматически, при попытке создания его объекта. Взял функцию __autoload()...  эффект по сути дела - аналогичный! Никак не могу понять, в чем глобальная разница?  smile 

Автор: ksnk 6.7.2010, 09:12
__autoload - функция единственная, если разрабатывает куча народу - за один рессурс можно и подраться...
а spl_autoload... - можно регистрировать столько обработчиков, сколько нужно, тогда когда нужно и такие какие хочешь...
Хотя - баловство это все  smile 

Автор: WolfAlone 6.7.2010, 09:58
ksnk, спасибо огромное! Понятно и доходчиво!  smile 

Если кому-то будет интересно, я постараюсь ещё больше разжевать то, что написано выше...

spl_autoload_register("function_name"); - регистрирует новую функцию автозагрузки классов, и таких регистраций может быть сколько угодно (не ограниченное количество). Функции автозагрузки классов будут вызываться в том порядке, в котором были зарегистрированы, до тех пор пока не загрузиться нужный класс. Как только нужный класс загрузился - цепочка вызовов будет прервана.

Так же, стоит отметить, что при первой же регистрации функции с помощью spl_autoload_register(); - функция __autoload(); - перестает работать! Т.е. функция __autoload(); теряет свои "специальные" свойства и становиться не более чем обычной пользовательской функцией.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)