doulun1666 2015-01-29 19:20
浏览 15

为什么我必须重新包含已包含在其他文件中的类?

I have something like the following:

main.php:

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

use Example\RandomClass;

include 'anotherFile.php';

anotherFile.php:

RandomClass::example();

Example/RandomClass.php:

namespace Example;

class RandomClass {

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

}

However I get the following warning: Warning: require_once(RandomClass.php): failed to open stream: No such file or directory in main.php on line 5 unless I have use Example\RandomClass.php in anotherFile.php as well. Is this intended behaviour and how should I make it so that I only have to require the class once?

  • 写回答

1条回答 默认 最新

  • doudou1438 2015-01-29 19:26
    关注

    I believe that your autoload is wrong:

    require_once $className . '.php';

    should be

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

    and check this answer

    评论

报告相同问题?