プログラミング学習帳

オンラインプログラミング学習サービス「ウェブカツ!!」で習ったことを整理してます。

エラーメッセージとは?

・エラーメッセージとは、プログラムの書き方が間違っていた場合、間違いを指摘してくれるメッセージのこと
・プログラムが間違っていることを「バグ(不具合)がある」という


エラーの流れ
——————————————————————

  1. phpファイルをサーバーへ配置
  2. ブラウザ側からそのファイル(URL)を呼び出す
  3. サーバーの中にあるphpが文法を1行1行見ながら機械語(0と1)に変換し、プログラムを実行
  4. サーバー側からブラウザ側へ、実行結果のファイルを返す

——————————————————————

機械語に変換されることを「コンパイル」と呼ぶ


エラーの種類
——————————————————————

  1. E_PARSE → コンパイルエラー
  2. E_ERROR → 実行時停止エラー
  3. E_WARNING → 実行時警告エラー
  4. E_NOTICE → 実行時注意エラー
  5. E_DEPRECATED → 実行時注意エラー

——————————————————————

・エラーレベルを「4」にした場合、1〜4までのエラーを表示できる


PHPのエラーメッセージを出す方法

  1. php.iniファイルに設定を書く → phpファイル全体に影響
  2. エラーを出したいphpファイルに設定を書く → 記述したphpファイルのみ影響

1の設定方法

  1. サーバーソフト内にある「php.ini」ファイルを開く
  2. 「error_reporting = E_ALL」と「display_errors = On」の「;(コメントアウト)」を消す
  3. サーバーソフトを再起動する

2の設定方法(phpファイル内に以下のコードを書き込む)

  1. error_reporting(E_ALL); //全てのエラーを報告する
  2. ini_set('display_errors','On'); //画面にエラーを表示させるか

 

よくあるエラーメッセージの例
——————————————————————

  1. Parse error: syntax error,unexpected end file,expecting'◯','or'◯' →あるべき文字を書き忘れている
  2. Fortal error:[]operator not supported for strings →文字型の変数を配列として使おうとしてる
  3. Fortal error:Call to undefined function (関数名) →定義されてない関数を使おうとしている
  4. Fortal error:Cannot redeclare (関数名) →同じ名前の関数が複数存在する
  5. Warning:Missing argument ◯ for (関数名)→◯番目の引数が指定されてない
  6. Notice:Unbefined variable:(変数名)→変数が定義されてない
  7. Notice:Constant(定数名) already defined → 同じ名前の定数を定義しようとしている
  8. include(ファイル名):failed to open stream; No such file or diretory →ファイルやディレクトリが存在しない
  9. Deprecated:Function (関数名)is deprecated → 非推奨の関数を使っている
  10. Waening:Cannot modify header infomation - headers already sent →header関数を呼ぶ前に文字や空白を出力している
  11. Waening:Invalid argument supplied for foreach() → foreach関数に文字列などを使ってる

——————————————————————

 

 

・不具合の箇所が特定できない場合は、「ログ」を見る
・ログとは、プログラムがどこまで実行されたかなどを記録したもの
・ログをとることで「エラーの出ないバグ」にも対処できる
・エラーの出ないバグとは、プログラムは正常に動いてるが、実際の処理された結果が思っていたものと違うこと

 

サーバーソフトMAMP内の「php_error.log」ファイル

——————————————————————

in /保存場所/MAMP/htdocs/フォルダ名/ファイル名 on line 51

——————————————————————

・51行目の処理が実行できませんでした

・51行目までの間に問題がある

・例えば、指定ファイルの名前が間違っていたり、コードの記述ミスがあるなど

 

 

初心者時のエラーとの戦い方

  • 「ちょっと書いて動かす」を繰り返す
  • 時間を置いて考える