Я запутался с одной вещью в автозагрузке php: функцией spl_autoload()
. В каждом ответе я обнаружил, что эта функция является реализацией по умолчанию __autoload
. Разве PHP не должен определять реализацию по умолчанию __autoload()
сам по себе, а затем, если я явно создаю __autoload()
, он просто переопределит ее?
Если я не определю функцию __autoload()
в моем php-файле, будет ли реализация по умолчанию? spl_autoload()
это какая-то внутренняя функция, если да, то почему она в php doc?
(Если это не внутренняя функция) В каждом примере spl_autoload () нет вызова этой функции, только spl_autoload_register
без параметров, spl_autoload_extensions
и т. Д. почему так? Чего мне не хватает?
Цитата из: Что такое автозагрузка; Как вы используете spl_autoload, __autoload и spl_autoload_register?
set_include_path(get_include_path().PATH_SEPARATOR.'path/to/my/directory/');
spl_autoload_extensions('.php, .inc');
spl_autoload_register();
Поскольку spl_autoload является реализацией по умолчанию __autoload ()
магический метод, PHP будет вызывать spl_autoload, когда вы попытаетесь создать экземпляр
новый класс.
Так что, если я не буду звонить spl_autoload_register()
, он не зарегистрирует реализацию по умолчанию? spl_autoload
проверяет расширения, установленные spl_autoload_extensions();
, а затем импортирует все файлы с этими расширениями из пути включения? Повторяющийся вопрос, упомянутый ранее: spl_autoload()
является внутренней функцией?
Я знаю, что __autoload()
устарела, и я должен использовать spl_autoload_register()
. Я просто хочу убедиться, что знаю, как все это работает.
Спасибо.