Help us understand the problem. What is going on with this article?

【PHP超初心者用】エラーは敵じゃなくて味方だよ

書くことになった経緯

誰しも初心者の頃ってエラーが出たりでバグらせたりすると、意味わかんねーよって投げ出したりすることもあったと思うんですよね。意味不明な英語だけの羅列が出ると焦ってやめたくなる気持ちも本当に分かります。

でも実はその意味不明な英語の羅列って、どこどこが間違ってるよって教えてくれたりしてくれてるんですよね。(もちろん意味不明なことを言ってることもありますが。笑)

そこで今回はどのようにエラーが書かれているかを見ることで、「こいつ実はいいやつだったんじゃね」っていう感覚を味わってほしいなと思っています。

エラーってどんなのがあるの

エラーにもいろんな種類があるのですが、その一例は以下のようなものです。
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のエラーの種類と解決方法

uni_uniq
データサイエンスをやりたいと思っているのに大抵他の技術に浮気している地方学生
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした