「Cannot redeclare class xxxxx」って何?

WordPressプラグインを作っていると、たまに「Cannot redeclare class xxxxx」のエラーが出る時がある。
他のプラグインで既に読み込まれているClassを再読み込みした際に表示される。

「require_once xxxxx」でライブラリを読み込んでいても表示される。
onceなのにと思うのだけれど、プラグインなのでライブラリまでのパスが異なるから別ファイルとみなされるらしい。
で、別ファイルだけど、class名が一緒なので、エラーになる。

回避するには、

if (!class_exists('クラス名')) {
	require_once xxxxx;
}

として、読み込まれていなければ、読み込むようにしてあげる。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)