, но до сих пор я не понимаю, почему мы должны использовать его
Когда вы структурировали и организовали свою работу, потому что организации следует, что у вас есть много подобных файлов классов. Более простым примером является mvc, но не только, любая пользовательская структура приведет к аналогичным файлам, содержащим класс, то из-за сходства вы помещаете их в одну и ту же папку, а также используете общее соглашение об именах файлов, например, вы можете иметь контроллер и каталог модели .. проверить пример файл: employeeModel.php
, statisticsModel.php
, indexController.php
, errorController.php
Ну вы можете воспользоваться этим фактом, проверить эту настроенную функцию автозагрузки:
/*** function to include model and view classes ***/
function __autoload($class_name)
{if(__DEBUG) eval(__DEBUG_EVAL);
/*** Load a model class ***/
$mfile=__SITE_PATH .'model/'.$class_name.'.php';//echo 'model file'.NL;v($file);
if (file_exists($mfile)){
include ($mfile);
if(__DEBUG) //store debug info before include
eval('error_log("autoload Success file exists: ".$mfile.NL);');
return true;
}
/*** Load a view class ***/
$cfile=__SITE_PATH .'view/'.'/'.substr($class_name,0,-4).'/'.$class_name.'.php';//v($file);
if (file_exists($cfile)){
include ($cfile);
if(__DEBUG) //store debug info before include
eval('error_log("autoload Success file exists: ".$cfile.NL);');
return true;
}
return false;
}
Он также имеет несколько строк для отладки, которую можно легко удалить позже. Из-за сходства в вещах он может решить, что включать, а также сообщать об ошибках. Без функции этой функции автозагрузки вы должны были бы заботиться о том, чтобы файлы классов были доступны перед использованием.Также эта функция позволяет включать файл один раз, если вы тщательно проверяете, что он не использует include_once
, это означает, что автозагрузка срабатывает только тогда, когда файл не был замечен раньше, в отличие от простого включения файла, который запускается каждый раз, когда код выполняется, так как очень правильно декодирует его.
Заключение Autload = срабатывает один раз в файл, автоматизирует все, поэтому вы выполняете класс напрямую, не заботясь о его включении.
Этот фрагмент абсолютно бессмыслен без контекста. «PHP не использует этот метод» -> * какой метод *? И, откровенно говоря, автор звучит не очень убедительно. – Jon
@PalAla ссылка не работает! – Songo
Извините, я изменяю его, теперь он работает. – palAlaa