本記事の位置づけ
PHPでよく出くわすエラーの種類を実際の事例と共に紹介していきます。
エラーの種類
よく出るものはこんな感じ。
実例と共に見る解決方法
Fatal error(致命的なエラー)
これは重大な致命的なエラーです。処理はこのエラー部分で停止します。
【よくある原因】
関数の二重定義や未定義関数の呼び出しなど。
【実例】
「未定義の関数を呼び出す」
以下のコードは、スペルミスによって未定義のhellという関数を呼び出してしまっています。
<?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 =
の行に";"
を忘れています。
<?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
というファイルを参照しようとしています。
<?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
という変数を使用しています。
<?php
echo $hello;
$hello = "こんにちは";
?>
【表示されるエラー】
hello
がUndefined(未定義)だと言われています。
Notice: Undefined variable: hello in /public_html/notice_error.php on line 2