クラスがインスタンス化された場所を見つける
質問
エラーを解決しようとしています:致命的なエラー:クラスを再宣言できません
どこでも探していましたが、クラスがインスタンス化された場所が見つかりません。
とにかく、そのクラスの既存のインスタンスに関するデバッグ情報を出力できます。
解決
チャンスは、クラスを複数回宣言するファイルをインポートすることです。これは、インクルード/要求が制御不能になることの徴候である可能性があるため、構造を単純にする必要がある場合があります。
1つの代替アプローチは、autoloadを使用してクラスをロードし、この種の問題を回避することです。別の方法は、include_onceまたはrequire_onceのみを使用することです。私は通常、単純な構造でrequireを使用することを好みます。
他のヒント
はい、愚かなphpはクラスが宣言された場所を教えてくれません。以下を試してください(致命的なエラー行の直前)
$r = new ReflectionClass("YourClassName"); echo $r->getStartLine();
var_dump(debug_backtrace());
を使用して呼び出しスタックを調べると、オブジェクトがインスタンス化された場所を見つけることができます。
所属していません StackOverflow