[PHP] エラーを表すクラスは、PEAR_Error.

PHPでデータベースを扱うとき、よく以下のようなコードを書きます。

<?php
        $db = DB::connect($dsn);
        $res = $db->query('insert into account (name, password) values (?, ?)', array($name, $password));
        if (PEAR::isError($res)) {
            die($res->getMessage());
        }
?>

ここで、PEAR::isErrorがtrueとなるときの$resとはなんなのでしょうか? getMessageメソッド以外にもエラーの情報が得られるメソッドを持ってはいないかと思い、調べてみました。みるのは、/usr/share/php/PEAR.phpPEAR::isErrorメソッドです。

<?php
    function isError($data, $code = null)
    {
        if (is_a($data, 'PEAR_Error')) {
            if (is_null($code)) {
                return true;
            } elseif (is_string($code)) {
                return $data->getMessage() == $code;
            } else {
                return $data->getCode() == $code;
            }
        }
        return false;
    }
?>

先頭にそのまま書いてあります。エラーと判定するクラスはPEAR_Errorクラスです。実はこのクラスは同じ/usr/share/php/PEAR.phpで定義されていて、toStringという名前のメソッドを持っています。このメソッドを使えば、getMessageよりも詳細なエラーの内容を得ることができます。