这个简单的代码适用于我的localhost。
function autoLoaderFunction($classname){
$file = path_to_server_document_root.'classes/'.strtolower($classname).'.php';
if (file_exists($file) && is_readable($file) && !class_exists($classname, false)){
require_once($file);
}else{
throw new Exception('Class cannot be found ( ' . $classname . ' )');
}
}
spl_autoload_register('autoLoaderFunction');
将内容上传到服务器时出现问题。所有路径都可以。但我有很多异常错误。这个自动加载功能似乎试图加载所有文件,不仅是类,还有函数,文件名等。有类似的错误: 带有消息'未找到类(language_id)'的未捕获异常'异常' - 其中language_id是url GET参数。 还喜欢: 未捕获的异常'异常',消息'找不到类(function_display_tempalte),其中function_display_tempalte是一个函数名... 当我删除throw new Exception行时,整个网站在服务器上工作正常,所以这个自动加载似乎正确地加载了所有必要的类,还有很多其他不是类的文件 完全不知道这里发生了什么。 任何建议?非常感谢!
答案 0 :(得分:1)
我猜您的代码正在尝试实例化language_id
的对象。这种行为没有其他解释。我会检查自动加载功能中抛出的Exception
的堆栈跟踪。
也许以下解决方案也是一个好的开始:
if (file_exists($file) && is_readable($file) && !class_exists($classname, false)){
require_once($file);
}else{
if($classname === 'language_id') {
var_dump(debug_backtrace());
}
throw new Exception('Class cannot be found ( ' . $classname . ' )');
}
但是,一旦设置完毕,调试器就可以让您的生活更轻松。