public function offsetGet($offset)
    {
        if (($offset < 0) || ($offset >= $this->charLen)) {
            return null;
        }

        $delta = $offset - $this->charIdx;

        if ($delta > 0) {
            // Fast forwarding.
            while ($delta-- > 0) {
                $this->byteIdx += static::getCharLength($this->str[$this->byteIdx]);
                ++$this->charIdx;
            }
        } elseif ($delta < 0) {
            // Rewinding.
            while ($delta++ < 0) {
                do {
                    $byte = ord($this->str[--$this->byteIdx]);
                } while (($byte >= 128) && ($byte < 192));
                --$this->charIdx;
            }
        }

        $bytesCount = static::getCharLength($this->str[$this->byteIdx]);

        $ret = '';
        for ($i = 0; $bytesCount-- > 0; ++$i) {
            $ret .= $this->str[$this->byteIdx + $i];
        }

        return $ret;
    }
public function offsetGet($offset)
    {
        if (($offset < 0) || ($offset >= $this->charLen)) {
            return null;
        }

        $delta = $offset - $this->charIdx;

        if ($delta > 0) {
            // Fast forwarding.
            while ($delta-- > 0) {
                $this->byteIdx += static::getCharLength($this->str[$this->byteIdx]);
                ++$this->charIdx;
            }
        } elseif ($delta < 0) {
            // Rewinding.
            while ($delta++ < 0) {
                do {
                    $byte = ord($this->str[--$this->byteIdx]);
                } while (($byte >= 128) && ($byte < 192));
                --$this->charIdx;
            }
        }

        $bytesCount = static::getCharLength($this->str[$this->byteIdx]);

        $ret = '';
        for ($i = 0; $bytesCount-- > 0; ++$i) {
            $ret .= $this->str[$this->byteIdx + $i];
        }

        return $ret;
    }
public function offsetGet ( $ offset ) { if ( ( $ offset < 0 ) || ( $ offset >= $ this -> charLen ) ) { return null ; } $ delta = $ offset - $ this -> charIdx ; if ( $ delta > 0 ) { // Fast forwarding. while ( $ delta -- > 0 ) { $ this -> byteIdx += static :: getCharLength ( $ this -> str [ $ this -> byteIdx ] ) ; ++ $ this -> charIdx ; } } elseif ( $ delta < 0 ) { // Rewinding. while ( $ delta ++ < 0 ) { do { $ byte = ord ( $ this -> str [ -- $ this -> byteIdx ] ) ; } while ( ( $ byte >= 128 ) && ( $ byte < 192 ) ) ; -- $ this -> charIdx ; } } $ bytesCount = static :: getCharLength ( $ this -> str [ $ this -> byteIdx ] ) ; $ ret = '' ; for ( $ i = 0 ; $ bytesCount -- > 0 ; ++ $ i ) { $ ret .= $ this -> str [ $ this -> byteIdx + $ i ] ; } return $ ret ; }
Gets the character at given offset.

@param int $offset the offset to be returned

@return string
Gets the character at given offset .