我正在包含一个带有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 .
这将递归地检查当前目录中的所有文件。