PHPで文字列から最後の文字を取る方法

こんにちは、さるまりんです。

今回は簡単なことなんですが、文字列の最後の文字を取ってみます。

こんな文字列があります。

$eng_text = 'I am a big boy';

この文字列の最後の文字を取って表示してみます。

echo substr($eng_text, -1) . "\n";

substr()関数にマイナスの数値を与えると、後ろからその数値分の文字列が取得できます。
実行すると↓が表示されます。

y

期待通り最後の'y'が取れました。

この文字列だとどうでしょう?

$jpn_text = '僕は大人だよ';

echo substr($jpn_text, -1) . "\n";

これを実行すると↓が表示されました

?

ん?上手くいってませんね。

$jpn_textは日本語、マルチバイト文字を含むのでこちらです。

echo mb_substr($jpn_text, -1) . "\n";

これで実行すると

と期待通り動いてくれました。

ちなみに$eng_textに対してmb_substr()

echo mb_substr($eng_text, -1) . "\n";

と処理すると

y

こちらも期待通りです。

substr()mb_substr()より速いようなので、マルチバイト文字が含まれないことがわかっている時はそちらを使う方が良さそうです。必要に応じて適切にプログラムできるように頑張ります。

読んでくださってありがとうございました。

それではまた!