已经在PHP和IP.Content中声明的类?

时间:2014-09-24 21:19:23

标签: php invision-power-board

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

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

我仍然收到错误:

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

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

如果我删除了类声明,并用echo替换它,我没有收到任何错误,它回复正常,这意味着该类在那时不存在。

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

我不确定如何调试它。

1 个答案:

答案 0 :(得分:0)

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

如果有任何人有奇怪的包含IPB问题,请确保你grep for includes / requires。它会为你省去很多麻烦。

这样的事情可以让你知道文件的包含位置:

grep -r include_name.php .

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