気軽に読めるPHP入門書・PHPスクリプトが動かないときの原因と対策などを紹介します。

  1. PHPエラーの原因と対策
  2. 10 view

E_ALLを指定してもエラーメッセージが表示されないとき

エラーの状況を調べようと「error_reporting(E_ALL)」と指定しても、詳しいエラーメッセージが表示されない場合があります。原因はいくつか考えられます。

(原因1) エラーメッセージが非表示になっている
レンタルサーバーなどでは、セキュリティ上の都合でエラーメッセージの詳細を表示しない設定になっているはずです。エラーメッセージを表示するには、error_reporting(E_ALL)の前でdisplay_errorsという設定項目を「On」にする必要があります。

○エラーメッセージが表示されるように設定する
ini_set(“display_errors”, On);
error_reporting(E_ALL);

(原因2) E_STRICTはE_ALLに含まれない
PHP5の仕様に基づいてコード変更を促すE_STRICTエラーは、E_ALLには含まれていません。これを含めてすべてのエラーメッセージを表示するには、次のように設定する必要があります。

○E_STRICTを含めてすべてのエラーメッセージを表示する
error_reporting(E_ALL | E_STRICT);

(原因3) .htaccessではE_ALLが使えない
.htaccessにPHPの設定を記述する場合は、E_ALLなどの定数を指定できません。次のように数値で指定する必要があります。

○.htaccessでエラーレベルを設定する(E_ALL)
php_value error_reporting 2047

「E_ALL | E_STRICT」の場合は、「php_value error_reporting 4095」とします。

この「4095」などの数値は、PHPのバージョンによって異なります。うまくいかないときは、「echo E_ALL」などとして定数を示す数値を調べてみましょう。

【関連記事】エラー表示レベルの設定がうまくいかないとき

PHPエラーの原因と対策の最近記事

  1. PHPの関数や変数の前にあるアットマークの意味は?

  2. 「http:// wrapper is disabled in the server co…

  3. php.iniの場所

  4. 「Warning: array_key_exists()」と表示されるとき

  5. 「Warning: A non-numeric value encountered」と表示…

関連記事

PAGE TOP