类已在PHP和IP.Content中声明


Class already declared in PHP and IP.Content?

我正在包含一个带有GroupManager类的文件,该文件是用IP.content评估的。我收到错误,该类已经定义。如果我不包括在内,我不会收到任何错误。如果我重命名这个类,我不会收到任何错误(但我确信这个类在其他地方不存在。)我尝试了以下操作,以防出现多个include(我个人使用include_one…):

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

我仍然收到错误:

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

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

如果我删除类声明,并将其替换为echo,则不会收到任何错误,并且它echo良好,这意味着该类此时不存在。

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

我甚至不确定如何调试它。

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

如果有人在IPB中有奇怪的include问题,请确保您键入includes/requires。这会为你省去很多麻烦。

这样的东西应该让你知道文件包含在哪里:

grep -r include_name.php .

这将递归地检查当前目录中的所有文件。