開発環境時にはエラーを見ながら修正していくのですがサーバーにアップしてエラーが表示される場合は開発環境の設定がサーバーと違うと言うことなんですが、作ったコードをアップしてサーバーでNOTICEエラーがあるといやですよね。このあたりのエラーはいっそのこと非表示にさせちゃいましょう。
ここでおさらいですがエラーには主に3種類あります。
スポンサーリンク
- Parse error/syntax error(文法間違い・入力ミス)
- Fatal error (実行が中断されるエラー)
- Notice/Warning(実行はするが注意・警告があるエラー)
ほとんどのエラーとはパースエラーだと思います。入力ミスが原因です。セミコロンや括弧をつけ忘れたりと。
まあ、このたぐいは見て修正していくしか無いと思います。
実行が中断されるエラーは定義されていない関数などを呼び出そうとしたときのエラーが多いですね。
警告・注意はプログラム自体は実行されます。ただ注意(Notice)は結構面倒なので非表示にさせても良いかなと思います。
今回作ったプログラムは開発環境用に表示するエラーと本番にはエラーを非表示にする関数を作りました。
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);
に変えればすべてのエラーが出力されます。