我有一个名为Query.php的文件。
namespace Test
{
class Query
{
public function __construct()
{
printf("Hello, World");
}
}
}
在bootstrap.php中我尝试调用它:
spl_autoload_register(function($className) {
if(file_exists('../folder/'.$className.'.php'))
{
require_once '../folder/'.$className.'.php';
}
});
new \Test\Query();
结果:致命错误:未找到类Test \ Query。
没有命名空间,它可以正常工作。如何解决?
提前致谢。
答案 0 :(得分:0)
您必须将\
替换为DIRECTORY_SEPARATOR
。
define('BASE_PATH', realpath(dirname(__FILE__)));
spl_autoload_register(function($className) {
if(file_exists(BASE_PATH . '../folder/'. str_replace('\\', DIRECTORY_SEPARATOR , $class). '.php'))
{
require_once '../folder/'.$className.'.php';
}
});
这假设您的目录结构如下
/folder/boostrap.php
/folder/Test/Query.php