我的问题是绝对路径和一般路径。我写道这是 000webhost 因为它可能是特定于主机的问题,所以在这里。
与任何主机一样,该主机public_html在根目录中有一个文件夹。我已将图像、CSS、JS 文件放在该文件夹中。此外,还有一个index.php和一个install.php。该应用程序的其余部分位于public_html (../public_html)名为app. 我constant.php在根中创建了一个值,我在其中创建了ABSOLUTE_PATH一个值为 的常量dirname(__FILE__) . '/app/'。spl_autoload_register()使用该常量来加载类,但它不起作用。
现在,您可能认为我做错了什么,但是在spl_autoload调用之前,我必须加载目录Autoload.php中的类app/libs/。另外,我加载User.php它也在app/libs目录中,它们都工作正常。
所以,我的问题是,为什么ABSOLUTE_PATH使用Autoload.phpandUser.php而不是在spl_autoload_register. 这是目录树...
root
    --- app
        --- libs
            - Autoload.php
            - User.php
    --- public_html
        -index.php
        -install.php
    - constants.php
就是这样。重复。在 install.php 中,使用此路径加载 Autoload.php 有效
ABSOLUTE_PATH . libs/Autoload.php
ABSOLUTE_PATH . libs/User.php
但在 Autoload.php 中,这样的东西不起作用
ABSOLUTE_PATH . libs/Bootstrap.php
我知道这是另一个“路径”问题,没有多少人想看到它,但我已经尝试解决它 3 天了,如果我不这样做,我将无法继续我的申请。
预先感谢您的所有答案
编辑:我以为我不必发布Autoload课程,但在这里......
class Autoload
{
    public function classAutoloader($class) {
        $container = '';
        $delim = explode('_', $class);
        $file =  ABSOLUTE_PATH . implode('/', $delim) . '.php';
        if(!is_readable($file)) {
            return false;
        }
        include_once $file;
    }
}
这行代码
$delim = explode('_', $class);
是因为类的全名是Libs_Bootstrap如此拆分字符串为 
ABSOLUTE_PATH/libs/Bootstrap.php。请注意,绝对路径常量是constants.php在根中的 which 中生成的。