首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spl_autoload_register()的问题

spl_autoload_register()的问题
EN

Stack Overflow用户
提问于 2013-12-24 08:58:44
回答 2查看 1.7K关注 0票数 1

我的一个php应用程序确实有问题。首先,我的测试环境运行在安装了PHP的IIS上。在这里,我有以下代码:

代码语言:javascript
复制
<?php
// define autoloader for all php classes
$ps = PATH_SEPARATOR; // add default path seperator to a variable
set_include_path(get_include_path().$ps."classes/adapter/".$ps."classes/common/".$ps."classes/manager/".$ps."classes/mapper/".$ps."classes/object/".$ps."classes/viewobject/"); // add classes directory to include paths
spl_autoload_extensions(".class.php"); // add .class.php as extension for autoloading classes
spl_autoload_register(); //start the autoloading procedure
?>

到目前为止还不错,因为这是它应该做的。现在,我想将该页面移到我的提供者,它使用Apache和PHP,我看到的是下面的错误消息:

代码语言:javascript
复制
Fatal error: spl_autoload() [<a href='function.spl-autoload'>function.spl-autoload</a>]: Class pageLoader could not be loaded 

你们知道我做错了什么吗?

非常感谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-24 14:04:22

看来我发现了问题..。我知道linux是区分大小写的,但是由于任何原因,类的文件名必须是小写的。

在我的例子中,如果你打个电话

代码语言:javascript
复制
$test = new pageLoader();

目录中的文件需要名为"pageloader.class.php“。

干杯

票数 1
EN

Stack Overflow用户

发布于 2013-12-24 09:03:21

您忘记定义加载程序函数了吗?

代码语言:javascript
复制
// Autoloader for Classes
spl_autoload_register(null, false); // Nullify any existing autoloads
spl_autoload_extensions('.php, .class.php'); // Specify extensions that may be loaded

function class_loader($class) // Class loader
{
    $filename = strtolower($class) .'.class.php';
    $file = ROOT .'/classes/'. $filename;

    if(!is_readable($file))
        return false;

    require_once $file;
}

spl_autoload_register('class_loader'); // Register loader function(s)
// End Autoloader

注意,上面的代码假定有一个定义的常量ROOT

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20757842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档