「error_reporting 32767」とか「error_reporting 32759」のようなコードは何かの暗号のようですが、実は「error_reporting(E_ALL)」や「error_reporting(E_ALL & ~E_NOTICE)」と同じことです。定数E_ALLを数値にすると32767だということです。
主なエラー定数と数値は次のとおりです。
- 32767:E_ALL
- 2048:E_STRICT
- 8:E_NOTICE
- 4:E_PARSE
- 1:E_ERROR
この数値はPHPのバージョンによって異なる場合があるので注意が必要です。詳しくは、以下のページをご覧ください。
E_ALLの代わりに32767が使われる理由
E_ALLの代わりに32767が使われる理由の1つは.htaccessです。
ホームページ(Webアプリケーション)の動作設定を記述できる.htaccessでは、E_ALLのような定数は使えません。つまり、次のような記述は反映されません。
php_value error_reporting E_ALL
そのため、E_ALLなどの定数の代わりに次のように数値で指定する必要があります。
php_value error_reporting 32767
同じように、NOTICE以外の全エラーを表示したい場合は、E_ALL & ~E_NOTICEではなく「error_reporting 32759」のように指定します。32759はE_ALLの32767からE_NOTICEの8を引いた数値です。
php_value error_reporting 32759
現在の環境での定数値を調べる方法
これらの定数値はバージョンによって異なります。
E_ALLは、PHP 5.4.x では 32767、 PHP 5.3.x では 30719、 PHP 5.2.x では 6143、 それより前のバージョンでは 2047 でした。
(PHPマニュアル:エラー処理/定義済み定数より引用)
.htaccessに設定を記述する前に現在の環境での定数値をチェックするには、次のように定数を出力してみるとよいでしょう。
<?php echo E_ALL & ~E_NOTICE; ?>