| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > __autolod() и spl_autoload_register() |
| Автор: WolfAlone 6.7.2010, 08:56 |
| Здравствуйте уважаемые! Возник вопрос... Использую функцию spl_autoload_register() - она помогает загрузить файл с классом автоматически, при попытке создания его объекта. Взял функцию __autoload()... эффект по сути дела - аналогичный! Никак не могу понять, в чем глобальная разница? |
| Автор: ksnk 6.7.2010, 09:12 |
| __autoload - функция единственная, если разрабатывает куча народу - за один рессурс можно и подраться... а spl_autoload... - можно регистрировать столько обработчиков, сколько нужно, тогда когда нужно и такие какие хочешь... Хотя - баловство это все |
| Автор: WolfAlone 6.7.2010, 09:58 |
| ksnk, спасибо огромное! Понятно и доходчиво! Если кому-то будет интересно, я постараюсь ещё больше разжевать то, что написано выше... spl_autoload_register("function_name"); - регистрирует новую функцию автозагрузки классов, и таких регистраций может быть сколько угодно (не ограниченное количество). Функции автозагрузки классов будут вызываться в том порядке, в котором были зарегистрированы, до тех пор пока не загрузиться нужный класс. Как только нужный класс загрузился - цепочка вызовов будет прервана. Так же, стоит отметить, что при первой же регистрации функции с помощью spl_autoload_register(); - функция __autoload(); - перестает работать! Т.е. функция __autoload(); теряет свои "специальные" свойства и становиться не более чем обычной пользовательской функцией. |