致命错误:使用 spl_autoload_register 找不到类“X”


Fatal error: Class 'X' not found using spl_autoload_register

我想做的是让我的php库自动加载如下

spl_autoload_register(function ($class) {
    if (file_exists("MyLib/Helpers/{$class}.php"))
        require_once "MyLib/Helpers/{$class}.php";
}

工作正常,如果我从root->(index.php)调用它,但是例如我做了新的Directory,例如"管理员",它会抛出此错误

Fatal error: Class 'MySQL' not found in C:'xampp'htdocs'Fone'MyLib'MyLib.php on line 33

我应该如何解决这个问题,所以如果MyLib在任何目录中它可以工作并且加载正常?

您可以尝试完全定义路径,如下所示:

<?php
spl_autoload_register(function ($class) {
    if (file_exists(__DIR__ . "/MyLib/Helpers/{$class}.php"))
        require_once __DIR__ . "/MyLib/Helpers/{$class}.php";
}

假设包含spl_autoload_register的文件位于足够的级别(否则,只需相应地更新路径的其余部分(例如 __DIR__ . "/../../etc...")。