[PHP] error_reportingで使用するエラーレベルのビットマスクを調べる方法
では問題です。
Apacheのバーチャルホスト単位でエラーレベルを変更するには?
答え
.htaccess または httpd.conf などに記述します。しかしここでやっかいな問題があります。
.htaccessやhttpd.confでエラーレベルを指定する場合は、整数値で指定しないといけないのです。
php_value error_reporting 30719
この"30719"などの整数値はどうやって調べればいいのでしょうか?
一応マニュアルを見れば整数値の一覧が書いてあります。
E_NOTICEが "8" で、E_STRICTが "2048" といった具合です。
やっかいなのは、E_ALLの値がPHPのバージョンによって異なるということです。
例えば,
PHP5.1のE_ALLは "2047" です。
PHP5.2のE_ALLは "6143" です。
つまり、
「"E_ALL | E_STRICT"の整数値は何か?」
という問いの答えは、
「それはあなたのPHPのバージョンによって異なる」
ということになります。
さあ困りましたね。
エラーレベルの整数値を調べる方法
ワンライナーを使って、整数値を直接表示してみましょう。PHP 5.1の場合
$ php -r 'echo E_ALL,"\n";'
2047
$ php -r 'echo E_ALL | E_STRICT,"\n";'
4095
PHP 5.2の場合
$ php -r 'echo E_ALL,"\n";'
6143
$ php -r 'echo E_ALL | E_STRICT ,"\n";'
8191
これで、いちいち整数値を覚えなくて済みますね!
Enjoy!
カテゴリ:
PHP