基本中の基本!PHPのプログラミングエラーの種類と内容

勝利


基本中の基本!PHPのプログラミングエラーの種類と内容

「渋谷ってわがまま」。どうも、勝利です。

今回は初心に戻り、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 = “パスを設定”

 

 

まず知ることから、と孫子が言っています。今回のブログを読んで、敵(プログラミングエラー)を知る事ができたら幸いです。

勝利
この記事を書いた人
勝利

TRIPチーム

関連記事