DB_DataObject の update() メソッドで、$settings に値を設定する
部分に理解できない点がありました。$settings は UPDATE構文での
SET に続く部分を設定する変数のようです。

// if の条件部は何を判別してるのか?
if ($v & DB_DATAOBJECT_STR) {
// name = 'mona' という文字列を追加してるんだろうけど
// なぜ末尾に ' ' を追加してる?
$settings .= "$kSql = ". $DB->quote($this->$k) . ' ';
continue;
}
if (is_numeric($this->$k)) {
$settings .= "$kSql = {$this->$k} ";
continue;
}
// なぜ、どの if にもマッチしなかった場合に intval() するのか?
$settings .= "$kSql = " . intval($this->$k) . ' ';