$value) { $output .= '"'.$key.'":'; if(is_array($value)) $output .= self::encode($value); else $output .= self::_val($value); if($i !== $last) $output .= ','; ++$i; } $output .= '}'; } // return return $output; } /** * [INTERNAL] Format value * @param mixed $val the value * @return string */ private static function _val($val) { if(is_string($val)) return '"'.rawurlencode($val).'"'; elseif(is_int($val)) return sprintf('%d', $val); elseif(is_float($val)) return sprintf('%F', $val); elseif(is_bool($val)) return ($val ? 'true' : 'false'); else return 'null'; } } ?>