function __decodeString(&$encode, &$pos) { $replacement = FastJSON::__getStaticReplacement(); $endString = FastJSON::__endString($encode, $pos, $pos); $result = str_replace($replacement['replace'], $replacement['find'], substr($encode, $pos, $endString)); $pos += $endString; return $result; }
public static function encode($decode) { $result = ''; switch (gettype($decode)) { case 'array': if (!count($decode) || array_keys($decode) === range(0, count($decode) - 1)) { $keys = array(); foreach ($decode as $value) { if (($value = FastJSON::encode($value)) !== '') { array_push($keys, $value); } } $result = '[' . implode(',', $keys) . ']'; } else { $result = FastJSON::convert($decode); } break; case 'string': $replacement = FastJSON::__getStaticReplacement(); $result = '"' . str_replace($replacement['find'], $replacement['replace'], $decode) . '"'; break; default: if (!is_callable($decode)) { $result = FastJSON::convert($decode); } break; } return $result; }