フリーランス|WEB 制作経験丸7年、制作会社様からのご依頼に丁寧・高クオリティでお手伝いいたします。 IRODORI DESIGN

B L O G

【PHPエラー】Fatal error: Uncaught Error: Class “●●●” not found inの解決方法

Fatal error
PHPエラー
インスタンス化
オブジェクト指向
クラス

こんにちは、岐阜・名古屋を拠点に全国各地からご依頼いただくWEBサイトを制作しているフリーランスエンジニアの寺井です。

PHPでプログラミングをしていると予期せぬプログラムエラーが表示されることがあります。
Fatal error: Uncaught Error: Class "●●●" not found in...もそのうちの1つです。

この記事では、Fatal error: Uncaught Error: Class "●●●" not found in...が起こる状況と解決方法をご紹介したいと思います。

Fatal error: Uncaught Error: Class “●●●” not found inとは

まずは、Fatal error: Uncaught Error: Class "●●●" not found inとは何なのか、どんな時に起こるPHPエラーなのかを見てみましょう。

このエラーは以下のようなエラー文章で表示されます。

Fatal error: Uncaught Error: Class "●●●" not found in ▲▲▲:■ Stack trace: #0 {main} thrown in ▲▲▲ on line ■
  • ●●●:存在しないクラス名
  • ▲▲▲:ディレクトリ名/ファイル名
  • ■■■:エラーの原因となる●●●が書かれている行数

このエラー文章から

「▲▲▲にあるファイルの■■■行目に書かれている●●●という存在しないクラスをインスタンス化しようとしたからPHPエラーが起こった」

ということがわかります。

<?php
class class_name {

    function method_name() {
        echo "test";
    }
}
$data = new class_name2();
?>

上のようなコードの場合にクラス名を間違えて存在しないクラスをインスタンス化しようとしているから、Fatal error: Uncaught Error: Class "●●●" not found inが表示されます。

エラーが表示される原因と解決方法

このエラーが表示されるのは存在しないクラスをインスタンス化しようとした時ですがが、具体的には以下のような原因が考えられます。

  • クラス名を間違えている
  • クラスが定義されているPHPファイルを読み込んでいない(※別ファイルで管理している場合)

解決方法

解決方法は簡単で、クラス名を間違えている場合は、正しいクラスをインスタンス化します。
そもそも、クラスが定義されているPHPファイルが読み込めていない場合は、そのPHPファイルを読み込んでからクラスをインスタンス化するようにします。

これだけでこのエラーは解消します。

上のサンプルコードの場合は以下のように修正することでこのエラーは解消します。

<?php
class class_name {

    function method_name() {
        echo "test";
    }
}
$data = new class_name();
?>

まとめ

いかがでしたか?
このエラーはPHPエラーの中でも初歩的なものです。
そのため、エラーの原因は分かっていても、そんなハズはない!このクラスは確かに定義してある!と思い込んでしまってついつい解消に時間を要してしまう恐れがあります。
今一度、冷静になって、クラス名が間違っていないか、そもそも正しくファイルが読み込めているかを確認してみましょう。
思わぬところに落とし穴が隠れている可能性が高いと思います。