エラーメッセージの抑制

僕はXAMPPの上でPHPを書いているけど、デフォルトの設定だと、PEAR::MDB2を使うと以下のようなエラー(警告?)が大量に出る。

  • Deprecated: Assigning the return value of new by reference is deprecated in <ソースファイル名>
  • Strict standards: Declaration of <メソッド名> should be compatible with that of <メソッド名> in <ソースファイル名>
  • Strict standards: Non-static method <メソッド名> should not be called statically in <ソースファイル名>

PHPはエラーにレベルを定義していて(PHP: 定義済み定数 - Manual)、エラーのレベルに応じてそのメッセージを表示するか否かを設定できるようになっているらしい。んで、それをやってくれるのがerror_reporting関数(PHP: error_reporting - Manual)。
上に挙げたエラーは

  • E_STRICT
  • E_DEPRECATED

だそうで、この2種類のエラーメッセージを、error_reporting関数で非表示にしてやれば良いっぽい。
error_reportingの引数を作る時、ビット演算しないといけないので、ちょっと注意。ビット演算、最近なかなかお目にかかれないので、演算子忘れちゃってるよ><

ってか、僕に文句言うなよなー。ライブラリに文句言えよなー。ライブラリさっさと修正しろよって思うんですけど。
PEARの位置づけが分からない。これはPHPの標準ライブラリってわけじゃないの?PHPの標準ライブラリはSPLか。標準じゃないから自分で修正して使えよってことなのかなぁ。