0

我包含一个带有类 GroupManager 的文件,该文件使用 IP.content 进行了评估。我收到了该类已定义的错误。如果我取消包含,我不会收到任何错误。如果我重命名该类,我不会收到任何错误(但是我确定这个类在其他地方不存在。)我尝试了以下以防有多个包含(我个人使用 include_once ...):

if( !class_exists('GroupManager') ) {
    class GroupManager {
    }
}

我仍然收到错误:

 Cannot redeclare class GroupManager in ... GroupManager.php on line 37

显然,我的 4 行文件中没有第 37 行。

如果我删除类声明,并用回显替换它,我不会收到错误并且回显很好,这意味着此时该类不存在。

if( !class_exists('GroupManager') ) {
    echo "Class does not exist???";
}

我不确定如何调试它。

4

1 回答 1

0

我发现了这个问题,我应该早点发现它......另一个管理员已将此文件包含在一个钩子中。钩子显然在每个页面上运行,即使每个页面都不需要钩子......因此我没有想到检查钩子。

如果有人对 IPB 有奇怪的包含问题,请确保您使用 grep 查找包含/要求。它会为你省去很多麻烦。

这样的事情应该让您了解文件包含在哪里:

grep -r include_name.php .

这将从当前目录递归检查所有文件。

于 2014-09-24T22:52:02.450 回答