startOffset, $this->endOffset) = self::splitRange($range); } /** * Internal helper method for splitting the range string. * * @param string|array $range The range to split. * * @return array|null * * @internal */ private static function splitRange($range) { if (is_array($range) && count($range) === 2) { return $range; } if (is_string($range) && preg_match(self::RANGE_RE, $range) === 1) { return explode('..', $range, 2); } throw new UnexpectedValueException('A valid Range is expected'); } /** * Serializes to string. * * @return string */ public function __toString() { return ArrayUtils::implodeActionQualifiers($this->startOffset, $this->endOffset); } /** * Serializes to json. * * @return mixed */ public function jsonSerialize() { // TODO: Implement jsonSerialize() method. } }