在搜索完该站点后,我不知道为什么我会收到关于找不到我的类的致命错误,除非我实例化具有前缀名称景观的类,或者注释掉类文件中的名称景观。我正在使用 PSR-0 尝试解决这个问题,但没有运气,还有这个线程在这里,这是最接近我的问题。
自动加载器代码:
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;博士版本:
- 在被调用的类中注释掉 namescape 声明?工作正常。
- 使用名称景观/类格式实例化类?工作正常。
- 除此以外?致命错误:找不到类(即使它位于同一目录中。