PHP: класс автозагрузки не найден

У меня проблема с автозагрузкой классов в PHP.

В моем index.php Я пишу (это самый простой):

function _autoload($class_name) {
  require_once $class_name . '.php';
}

$a = new Cont();

мой Cont.php файл находится в PROJECT_ROOT/assets/core/Contr.php;

В результате мой index.php файл выдает фатальную ошибку:

Fatal error: Class 'Cont' not found in /var/www/bill/index.php on line 15

2 ответа

Решение

Так должно быть __autoload() Похоже, вы пропустили символ подчеркивания.

То есть..

function __autoload($class_name) {
  require_once $class_name . '.php';
}

$a = new Cont();

Подсказка из руководства по PHP...

spl_autoload_register () предоставляет более гибкую альтернативу для автозагрузки классов. По этой причине использование __autoload() не рекомендуется и может быть признано устаревшим или удалено в будущем.

Во-первых, это __autoload - два подчеркивания.

Во-вторых, эта техника не рекомендуется - spl_autoload_register это лучший вариант.

В-третьих, вам, вероятно, понадобится require_once 'assets/core/' . $class_name . '.php'; если ваши файлы находятся в PROJECT_ROOT/assets/core,

Другие вопросы по тегам