Почему я должен повторно включить класс, который уже был включен из другого файла?

0

У меня есть что-то вроде следующего:

main.php:

spl_autoload_register(function($className) {
    require_once  $className . '.php';
});

use Example\RandomClass;

include 'anotherFile.php';

anotherFile.php:

RandomClass::example();

Пример/RandomClass.php:

namespace Example;

class RandomClass {

    public static function example() {
        echo 'example';
    }

}

Однако я получаю следующее предупреждение: Warning: require_once(RandomClass.php): failed to open stream: No such file or directory in main.php on line 5 если у меня не use Example\RandomClass.php в anotherFile.php. Является ли это предполагаемым поведением и как я могу его сделать, чтобы только один раз требовать класс?

  • 0
    Почему бы не использовать автозагрузчик с поддержкой пространства имен - php-fig.org/psr/psr-4
Теги:
namespaces
include
spl-autoload-register

1 ответ

0

Я считаю, что ваша автозагрузка неверна:

require_once $className. '.php';

должно быть

require_once 'Example\'. $className. '.php';

и проверить этот ответ

Ещё вопросы

Сообщество Overcoder
Наверх
Меню