0

我很难让 spl_autoload_register 工作。

当前文件夹结构:

config/
      autoLoader.php
      dataBase.php

lib/
      userClass/
                user.php

web/
    userHomepage/
                 index.php  

配置/autoLoader.php

spl_autoload_register(function($class)
{
    include_once $_SERVER['DOCUMENT_ROOT'] . '/project/lib/userClass/' . $class . '.ph';
});

lib/userClass/user.php

namespace userClass;

class userClass
{
    public function printName()
            { 
                echo 'Stackoverflow'
            }
}

网页/用户主页/index.php

include $_SERVER['DOCUMENT_ROOT'] . '/project/helpers/autoLoader.php';

$userClass = new userClass;

虽然它不起作用,但它返回 userClass not found.. 这个问题是由于命名空间没有正确打印,而它应该包含它们的路径吗?我已经检查了 php 网站以寻求帮助,但不清楚,也查看了有关它的每篇文章,但没有任何指向正确方向的内容!

4

1 回答 1

0

可能您$_SERVER['DOCUMENT_ROOT']指向 web/userHomepage/ 文件夹。如果是这样,那么你应该使用

spl_autoload_register(function($class)
{
  require $_SERVER['DOCUMENT_ROOT'] . '/../../lib/userClass/' . $class . '.php';
});

并更新 autoLoader.php 路径。并且更好地使用require而不是include. 然后您将看到一条错误消息,该消息将解释该问题。

于 2013-09-29T21:59:18.877 回答