在浏览网站之后,我不知道为什么我得到一个关于我的课程没有被发现的致命错误,除非我用名称前缀为它实例化该类,或者注释掉类文件。我正在使用PSR-0试图解决这个问题而没有运气,以及this thread here,这是我最接近我的问题。
Autoloader代码:
function autoload($className)
{
$className = ltrim($className, '\\');
$fileName = '';
$namespace = '';
if ($lastNsPos = strrpos($className, '\\')) {
$namespace = substr($className, 0, $lastNsPos);
$className = substr($className, $lastNsPos + 1);
$fileName = str_replace('\\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;
}
$fileName .= str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';
require $fileName;
}
spl_autoload_register('autoload');
所有三个文件的路径(Autoloader.php,Class.php,index.php)都在同一目录级别。没有子目录或类似的东西。
自动加载器代码在index.php的开头实现,带有require_once(“Autoloader.php”);
在$ foo = new classFoo();
中调用类tl; dr版本: