0

我在我的函数文件 (MyFunctions.php) 中放置了以下代码:

spl_autoload_register               
( 
    function( $Class )              
    { 
        $Class = str_replace ( "..", "", $Class );
        include $_SERVER['DOCUMENT_ROOT'] . '/phpsb/class library/' . $Class . '.php';
    }
);

但是,当我从脚本中引用类/对象时,spl_autoload_register会在定义它的函数文件中搜索,而不是在类库目录中搜索:

Warning: include(C:/xampp/htdocs/phpsb/class library/FormClass.php): failed to open stream: No such file or directory in C:\xampp\htdocs\sandbox\function library\MyFunctions.php 
4

1 回答 1

0

尝试这个:

spl_autoload_register(function ($className) {
    $className = (string) str_replace('\\', DIRECTORY_SEPARATOR, $className);
        include_once(dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . $className . '.php');
});

此代码支持名称空间,我假设 MyFunctions.php 与动态加载的 PHP 文件位于同一目录中。

于 2013-11-05T12:18:53.930 回答