エラーメッセージとは?
・エラーメッセージとは、プログラムの書き方が間違っていた場合、間違いを指摘してくれるメッセージのこと
・プログラムが間違っていることを「バグ(不具合)がある」という
エラーの流れ
——————————————————————
- phpファイルをサーバーへ配置
- ブラウザ側からそのファイル(URL)を呼び出す
- サーバーの中にあるphpが文法を1行1行見ながら機械語(0と1)に変換し、プログラムを実行
- サーバー側からブラウザ側へ、実行結果のファイルを返す
——————————————————————
エラーの種類
——————————————————————
- E_PARSE → コンパイルエラー
- E_ERROR → 実行時停止エラー
- E_WARNING → 実行時警告エラー
- E_NOTICE → 実行時注意エラー
- E_DEPRECATED → 実行時注意エラー
——————————————————————
・エラーレベルを「4」にした場合、1〜4までのエラーを表示できる
PHPのエラーメッセージを出す方法
1の設定方法
- サーバーソフト内にある「php.ini」ファイルを開く
- 「error_reporting = E_ALL」と「display_errors = On」の「;(コメントアウト)」を消す
- サーバーソフトを再起動する
2の設定方法(phpファイル内に以下のコードを書き込む)
- error_reporting(E_ALL); //全てのエラーを報告する
- ini_set('display_errors','On'); //画面にエラーを表示させるか
よくあるエラーメッセージの例
——————————————————————
- Parse error: syntax error,unexpected end file,expecting'◯','or'◯' →あるべき文字を書き忘れている
- Fortal error:[]operator not supported for strings →文字型の変数を配列として使おうとしてる
- Fortal error:Call to undefined function (関数名) →定義されてない関数を使おうとしている
- Fortal error:Cannot redeclare (関数名) →同じ名前の関数が複数存在する
- Warning:Missing argument ◯ for (関数名)→◯番目の引数が指定されてない
- Notice:Unbefined variable:(変数名)→変数が定義されてない
- Notice:Constant(定数名) already defined → 同じ名前の定数を定義しようとしている
- include(ファイル名):failed to open stream; No such file or diretory →ファイルやディレクトリが存在しない
- Deprecated:Function (関数名)is deprecated → 非推奨の関数を使っている
- Waening:Cannot modify header infomation - headers already sent →header関数を呼ぶ前に文字や空白を出力している
- Waening:Invalid argument supplied for foreach() → foreach関数に文字列などを使ってる
——————————————————————
・不具合の箇所が特定できない場合は、「ログ」を見る
・ログとは、プログラムがどこまで実行されたかなどを記録したもの
・ログをとることで「エラーの出ないバグ」にも対処できる
・エラーの出ないバグとは、プログラムは正常に動いてるが、実際の処理された結果が思っていたものと違うこと
例
サーバーソフトMAMP内の「php_error.log」ファイル
——————————————————————
in /保存場所/MAMP/htdocs/フォルダ名/ファイル名 on line 51
——————————————————————
・51行目の処理が実行できませんでした
・51行目までの間に問題がある
・例えば、指定ファイルの名前が間違っていたり、コードの記述ミスがあるなど
初心者時のエラーとの戦い方
- 「ちょっと書いて動かす」を繰り返す
- 時間を置いて考える