phpのstrrposで日本語を扱う時

strrpos: 文字列の中に、ある部分の文字列が最後に現れる場所を探す
int strrpos(string $haystack, string $needle)

echo strrpos("あいうえお", "う");

6?
あれ?どういうことだ?

echo strrpos("phpengineer", "h");

1

あれ、半角英数字だと上手くいく。日本語だと駄目なのか?

echo strrpos("日本語で試します", "で");

9

あ、わかった、これはバイト数でカウントしてるんだな。
日本語は一文字3バイトだから、012, 345, 678, 9
で、9ということだろう。

試しに4バイトの漢字を入れてみましょう。
「𡈽」を使ってみます。
参考: UTF-8で4バイトになる文字 https://www.softel.co.jp/blogs/tech/archives/596

echo strrpos("𡈽は4バイトです", "は");

4
あ、やっぱりそうですね。
なるほどー