public function CastAsAppropriate($value) { if (is_array($value)) { return $value; } elseif (preg_match('#^[0-9]+/[0-9]+$#', $value)) { return Utils::DecimalizeFraction($value); } elseif (preg_match('#^[0-9]+$#', $value)) { return Utils::CastAsInt($value); } elseif (preg_match('#^[0-9\\.]+$#', $value)) { return (double) $value; } return $value; }