$v ) $elements[] = array( static::fromData($k), static::fromData($v) ); return static::build($elements); } elseif ( is_float($data) ) return static::buildFloat($data); elseif ( is_numeric($data) ) return static::buildInteger($data); elseif ( is_bool($data) ) return $data ? static::buildTrue() : static::buildFalse(); elseif ( is_null($data) ) return static::buildNull(); elseif ( is_string($data) ) $code = "'" . implode('\' +. "\n" +. \'', explode("\n", addslashes($data))) . "'"; else throw new Exception('Object cannot be build from data : ' . get_class($data)); } public static function buildException ( $type, $action ) { return new Exception(sprintf( '%1$s error : type "%2$s" has no action "%3$s" !', get_called_class(), $type, $action )); } } ?>