書くことになった経緯
誰しも初心者の頃ってエラーが出たりでバグらせたりすると、意味わかんねーよって投げ出したりすることもあったと思うんですよね。意味不明な英語だけの羅列が出ると焦ってやめたくなる気持ちも本当に分かります。
でも実はその意味不明な英語の羅列って、どこどこが間違ってるよって教えてくれたりしてくれてるんですよね。(もちろん意味不明なことを言ってることもありますが。笑)
そこで今回はどのようにエラーが書かれているかを見ることで、「こいつ実はいいやつだったんじゃね」っていう感覚を味わってほしいなと思っています。
エラーってどんなのがあるの
エラーにもいろんな種類があるのですが、その一例は以下のようなものです。
Fatal error: Uncaught Error: Call to undefined function hell() in /public_html/fatal_error.php on line 6
今回はこのエラーを詳しく見ていきます。
では順番に見ていきましょう。
Fatal error: Uncaught Error:
まずはエラーのこの部分です。
Fatal error: Uncaught Error: Call to undefined function hell() in /public_html/fatal_error.php on line 6
ここではエラーの種類が記述されています。
Fatal error
は日本語にすると「致命的なエラー」、Uncaught Error
は「捕らえられなかったエラー」となります。
この種類によっては実行が途中で停止したり、そもそも最初から動かなかったりというのが決まっています。
今回出てきたエラーは致命的なエラーですので、完全に処理がとまってしまいます。
他にもParse error
(構文エラー)やWarning
(警告)などの種類がありますね。
Uncaught Error
については初心者の方には少し分かりづらいかもしれませんが、プログラマーはエラーに対して「キャッチ(捕捉)する」という表現をよく使います。try-catch
などを理解すれば感覚は分かると思うのですが、今回はそういう表現をするんだくらいで大丈夫です。
Call to undefined function hell()
次はこの部分です。
Fatal error: Uncaught Error: Call to undefined function hell() in /public_html/fatal_error.php on line 6
ここにはエラーの原因であるだろうことが書かれています。
今回の部分を訳すと、「定義されていないhell()という関数が呼ばれているよ」になります。
このように原因を真についた分かりやすいことを言ってくれることもありますが、まったく違うことを言ってくることもあります。
例えば、;
を最後に忘れちゃったときは間違いの次の行が間違ってるよと言われます。
in /public_html/fatal_error.php on line 6
いよいよ最後です。
Fatal error: Uncaught Error: Call to undefined function hell() in /public_html/fatal_error.php on line 6
ここでは、エラーの場所を教えてくれています。
今回で言うと、fatal_error.php
というファイルの6行目が間違ってるよ、といった感じです。
そのファイルがどこにあるのかを教えてくれているのが/public_html/
の部分です。
文字だけでファイル構造を表現する場合、hogeファイルの中にあるhoge.txtをhoge/hoge.txt
と表します。
なので、今回で言うとpublic_html
の中にあるfatal_error.php
という意味です。
まとめ
ここまでをまとめると、エラー文はこのように分解できます。
[エラーの種類]:[エラーの原因]in[エラーの場所]
こう見ると実は結構単純で簡単なんだと分かると思います。
これで少しはエラーに対して恐怖心がなくなったのではないでしょうか。
さらにエラーの詳しい種類や解決方法を知りたい方は以下の記事をご覧ください。
【実例で見る】PHPのエラーの種類と解決方法