code: public static function stringValue($value)
      {
          if (is_object($value)) {
              return (method_exists($value, '__toString')) ? $value->__toString() : get_class($value);
          }
          if (is_resource($value)) {
              $parts = explode(" ", strval($value));
              $id    = array_pop($parts);
              return get_resource_type($value) . " " . $id;
          }
          
          return is_string($value) ? $value : strval($value);
      }
docs: 指定された値を文字列型に変換します.
  
  __toString() が定義されているオブジェクトの場合は __toString() の結果,
  それ以外のオブジェクトはクラス名を返します.
  リソース型の場合は {@link http://jp1.php.net/manual/ja/function.get-resource-type.php get_resource_type()} にリソース ID
  を付け足した結果を返します.
  それ以外は string 型にキャストした結果を返します.
  
  @param  mixed  $value 変換対象の値
  @return string        変換後の文字列