0

IP.content で評価されるクラス GroupManager を持つファイルを含めています。クラスが既に定義されているというエラーを受け取りました。除外すると、エラーは発生しません。クラスの名前を変更しても、エラーは発生しません (ただし、このクラスが他の場所に存在しないことは確かです)。

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 で奇妙なインクルードの問題を抱えている場合は、includes/require を grep してください。それはあなたに多くの手間を省きます。

このようなものは、ファイルが含まれている場所のアイデアを与えるはずです:

grep -r include_name.php .

これにより、現在のディレクトリからすべてのファイルが再帰的にチェックされます。

于 2014-09-24T22:52:02.450 に答える