blob: 165e5380893c3aab91595675cdd4cbadc53b6eee (
plain)
| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 | <?php
namespace Micropoly\Search;
class CharSource
{
    private string $s;
    private int $i = 0;
    private int $len;
    public function __construct(string $s)
    {
        $this->s = $s;
        $this->len = mb_strlen($s);
    }
    public function getNext(): ?string
    {
        if ($this->i >= $this->len)
            return null;
        $c = mb_substr($this->s, $this->i, 1);
        $this->i++;
        return $c;
    }
    public function unget(): void
    {
        $this->i = max(0, $this->i - 1);
    }
}
 |