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

时间:2015-03-12 13:13:42

标签: php autoload spl

我要做的是自动加载到我的php库,如下所示

spl_autoload_register(function ($class) {

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

它工作正常,如果我从root->(index.php)调用它,但是例如我创建了新的Directory,例如" Admin" ,它抛出这个错误

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

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

1 个答案:

答案 0 :(得分:1)

您可以尝试完全定义路径,例如:

<?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...")。