「渋谷ってわがまま」。どうも、勝利です。
今回は初心に戻り、PHPにおけるプログラミングエラーについて書きます。
なぜなら、「敵を知り、己を知れば、百戦危うからず」と以前孫子[そんし]が言っていたのを思い出したからです。
じゃあ、いつ敵を知る?
「今、でしょ!!」
ということで、敵(プログラミングエラー)について書いていきます。
大体こんな感じのエラーがあります。
種類 | 内容 | 動作 |
E_ERROR / Fatal | 実行不可能 | 処理停止、白画面 |
E_PARSE / Parse | 解析不能 | 処理開始しない、白画面 |
E_WARNING / Warning | 警告:実行時に問題発生 | 処理継続 |
E_NOTICE / Notice | 通知:問題になりうる状況 | 処理継続 |
大体こんな事が原因でエラーが出ます。
E_ERROR / FATAL : 実行時の状態がそもそも問題
①呼び出す関数名間違い
②外部モジュールがエラーの場合
③スペルミス
④複雑な家庭環境
E_PARSE / Parse : 構文エラー
①セミコロン忘れ、閉じ忘れ
②全角スペース混入
③視力低下または乱視
E_WARNING / Warning : 警告。問題は発生するが処理継続
①実行処理の失敗
②参照先が参照できなかった場合
③型が違う
④精神不安定
E_NOTICE / Notice : 通知。問題になりうるが処理継続
①未定義変数の利用
②関数の引数がおかしい
③興奮状態
エラーが起きることでこんな被害が予想されます。
①FatalとParseに至っては動作しないので、頭および実行結果が真っ白になってしまう。
②いろいろな情報が出力されたりするので、脆弱性になりうる。
③表示(レイアウト)崩れになる。
④ログをとっている場合は不必要に容量を食ってしまう。
⑤減棒。
とりあえず対応しておきたいこと
プログラマさん等は開発時にこのようなエラーを見たいと思うのでいらないと思いますが、もし、リリース後やばいと思って取り急ぎ対応する際に。
エラー表示の制御
通常時はデフォルトの設定でこと足りると思いますが、もし必要になれば確認しましょう。
phpの設定で制御
エラーログを表示させて確認したい場合
php.ini
error_reporting = E_ALL
プログラム側で制御
① 表示させる
Error_reporting(-1);
② 回避する
Error_reporting(1);
最後に…これは忘れちゃいけない。まずエラーログを残す。
ログを残しておかないと後から相手を知ることはできませんので、残すようにしておきましょう。もし設定されていなければこちらも設定すると良いと思います。
php.ini
error_log = “パスを設定”
まず知ることから、と孫子が言っています。今回のブログを読んで、敵(プログラミングエラー)を知る事ができたら幸いです。
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。