« ウクレレをやることになったみたい | メイン | ライブラリが直接実行された場合はプログラムとして実行する »

2008年4月20日

E_STRICTを一時的に無効にする

PHP4,5両対応のライブラリを書こうと思った時にどうしても気になるのがE_STRICTの設定。
PHP4でも動くようにプログラムを書くと、PHP5でE_STRICTを有効にした場合に警告の嵐が orz。

プログラムを分ける

そもそもプログラムを分ければ問題なさそう。
ってこれは面倒くさいすぎるので却下。

一時的にE_STRICTを無効にする

一時的にE_STRICTを無効にすればいいんじゃないだろうか。
プログラムの最初でE_STRICTをoff。

// disable E_STRICT temporary
if (defined('E_STRICT')) {
    $_original_e_strict = ini_get('error_reporting') & E_STRICT;
    ini_set('error_reporting', ini_get('error_reporting') & ~E_STRICT);
}

プログラムの最後で元の設定に戻す。

// get E_STRICT setting back
if (defined('E_STRICT')) {
    ini_set('error_reporting', ini_get('error_reporting') | $_original_e_strict);
}

途中で他のファイルをincludeしなければこれでいけそう。

投稿者 masato : 2008年4月20日 20:17

トラックバック

このエントリーのトラックバックURL:
http://blog.bz2.jp/bz2mt/mt-tb.cgi/253

コメント

コメントしてください




保存しますか?