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)
関連記事:
コメントはまだありません。