src/Peach/DF/Utf8Context.php
public function next()
    {
        if (!$this->hasNext()) {
            return null;
        }
        
        $first = substr($this->text, $this->index, 1);
        $byte  = ord($first);
        
        // ASCII の範囲の文字はそのまま返します
        if ($byte < 128) {
            $this->index++;
            return $byte;
        }
        
        // ビットが 10xxxxxx または 1111111* の文字は NG なのでスキップして次の文字に進みます
        if ($byte < 192 || 254 <= $byte) {
            $this->index++;
            return $this->next();
        }
        
        return $this->nextMultibyteChar($byte);
    }
public function next()
    {
        if (!$this->hasNext()) {
            return null;
        }
        
        $first = substr($this->text, $this->index, 1);
        $byte  = ord($first);
        
        // ASCII の範囲の文字はそのまま返します
        if ($byte < 128) {
            $this->index++;
            return $byte;
        }
        
        // ビットが 10xxxxxx または 1111111* の文字は NG なのでスキップして次の文字に進みます
        if ($byte < 192 || 254 <= $byte) {
            $this->index++;
            return $this->next();
        }
        
        return $this->nextMultibyteChar($byte);
    }
index を 1 進めると同時に次の文字を返します.
次の index が存在しない場合は null を返します.

@return int 現在の文字の Unicode 符号点