LoginSignup
1
1

More than 3 years have passed since last update.

【実例で見る】PHPのエラーの種類と解決方法

Last updated at Posted at 2020-02-23

本記事の位置づけ

PHPでよく出くわすエラーの種類を実際の事例と共に紹介していきます。

エラーの種類

よく出るものはこんな感じ。

実例と共に見る解決方法

Fatal error(致命的なエラー)

これは重大な致命的なエラーです。処理はこのエラー部分で停止します。

【よくある原因】
関数の二重定義や未定義関数の呼び出しなど。

【実例】
「未定義の関数を呼び出す」
以下のコードは、スペルミスによって未定義のhellという関数を呼び出してしまっています。

fatal_error.php
<?php
    function hello(){
        $hello = "こんにちは";
        echo $hello;
    }
    hell();
?>

【表示されるエラー】
undefined(未定義)な関数のhell()が呼ばれていると言われています。
Fatal error: Uncaught Error: Call to undefined function hell() in /public_html/fatal_error.php:6

Parse error: syntax error(構文エラー)

これは構文(文法)のエラーです。この場合は処理はされず、エラーが表示されるだけの画面になります。

【よくある原因】
スペルミスや括弧の閉じ忘れなど。
(特に初心者の方は{},<>などのように括弧を開いたら閉じる習慣をつけましょう。)

【実例】
";"(セミコロン)忘れ」
以下のコードは、$hello = の行に";"を忘れています。

syntax_error.php
<?php
    $hello = "こんにちは"
    echo $hello;
?>

【表示されるエラー】
実際に付け忘れている行ではなく、一つ下のechoにエラーが出ます。
Parse error: syntax error, unexpected 'echo' (T_ECHO) in /public_html/syntax_error.php on line 3

Warning(警告)

これは直したほうがいいだろうくらいの間違いの指摘です。実行自体は止まらずに進み続けます。

【よくある原因】
参照先のファイルがないときや引数の型が違うときなど。

【実例】
「存在しないファイルの参照」
以下のコードは、存在していないhello.txtというファイルを参照しようとしています。

warning_error.php
<?php
    $filename = "hello.txt";
    $hello = file_get_contents($filename);
    echo $hello;
?>

【表示されるエラー】
ファイルを開くことが出来なかったと言われています。
Warning: file_get_contents(hello.txt): failed to open stream: No such file or directory in /public_html/warning_error.php on line 3

Notice(注意)

これは単なる注意なだけで、処理自体は無視して実行されます。しかし、セキュリティ的な面から見てもよくないエラーです。

【よくある原因】
未定義の変数の使用や関数の引数ミスなど。

【実例】
「未定義の変数の使用」
以下のコードは、未定義の$helloという変数を使用しています。

notice_error.php
<?php
    echo $hello;
    $hello = "こんにちは";
?>

【表示されるエラー】
helloがUndefined(未定義)だと言われています。
Notice: Undefined variable: hello in /public_html/notice_error.php on line 2

参考

$_GET, $_POSTなどを受け取る際の処理(Qiita)
基本中の基本!PHPのプログラミングエラーの種類と内容

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1