PHP5 で PEAR の内部で Non-Static method エラーが出る

PHP5 で set_error_handler() を利用していると、PEAR のライブラリの各所(PEAR::isError, DB::connect など)で E_STRICT(=2048) が発生します。
set_error_handler の呼び出しを次のように変更すると回避可能です。

変更前:
    set_error_handler(‘handler’);
変更後:
 define(‘PHP5’, version_compare( phpversion(), “5.0.0”, “>=” ));
 if(PHP5){
     $old_error_handler = set_error_handler(‘handler’, E_ALL);
 }else{
     $old_error_handler = set_error_handler(‘handler’);
 }

バージョンに応じて第二引数を与えているのがミソです。もちろん、PHP5だけに対応するのであれば、単純に既存のものに第二引数を与えればいいだけです。
 
PHP5 (5.0.5 で確認)では static メソッドの認識が微妙ですね。
 
参考:
#1491(Make code work on both PHP4 and PHP5) (LiveSupport – Trac)