開発環境時にはエラーを見ながら修正していくのですがサーバーにアップしてエラーが表示される場合は開発環境の設定がサーバーと違うと言うことなんですが、作ったコードをアップしてサーバーでNOTICEエラーがあるといやですよね。このあたりのエラーはいっそのこと非表示にさせちゃいましょう。
ここでおさらいですがエラーには主に3種類あります。
スポンサーリンク
- Parse error/syntax error(文法間違い・入力ミス)
- Fatal error (実行が中断されるエラー)
- Notice/Warning(実行はするが注意・警告があるエラー)
ほとんどのエラーとはパースエラーだと思います。入力ミスが原因です。セミコロンや括弧をつけ忘れたりと。
まあ、このたぐいは見て修正していくしか無いと思います。
実行が中断されるエラーは定義されていない関数などを呼び出そうとしたときのエラーが多いですね。
警告・注意はプログラム自体は実行されます。ただ注意(Notice)は結構面倒なので非表示にさせても良いかなと思います。
今回作ったプログラムは開発環境用に表示するエラーと本番にはエラーを非表示にする関数を作りました。
1 2 3 4 5 6 7 8 9 10 11 12 13 | function debug_mode($mode) { if ($mode === true) { // エラー表示 ini_set('display_errors', 1); error_reporting(E_ALL & ~E_NOTICE); } else { // エラー非表示 ini_set('display_errors', 0); error_reporting(0); } } // エラー表示ならtrue、非表示ならfalse debug_mode(true); |
こんな感じです。この関数はエラー表示といってもNoticeは表示されないようにしてあります。
すべて出力する場合はerror_reporting(E_ALL & ~E_NOTICE);のところをerror_reporting(-1);
に変えればすべてのエラーが出力されます。