PHPでendsWith

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

前回に引き続きプログラミングのお話です。

startsWithPHPにない!って話でそれを実装しました。

ではそれと対となる機能も欲しいですね。

endsWithです。

endsWith

文字列が特定の文字列で終わるかを調べる方法です。

実装はこんな感じ。

/**
 * 文字列$haystackは$needleで終わる?
 */
public static function ends_with($haystack, $needle) {
    return $needle === ""
        || substr($haystack, -strlen($needle)) === $needle;
}

使っているsubstr()ですが、2つ目の引数を負の数で指定すると、1つ目の引数で指定した文字列の後ろから何文字目からと言う部分文字列を取り出してくれます。

例えば

substr("I want you!", -4)とすると"you!"を取り出します。
長さも指定できます。
substr("I want you!", -4, 3)とすると"you"を取り出します。

このやり方で$haystackの後ろから$needleの長さ分の部分文字列を取り出して、それが$needleと一致するかを調べるやり方でendsWithを実現しています。

もっといいやり方があるのかもしれませんが、結構シンプルで気に入っています。

あー、正規表現、勉強しないとなぁ。

と言うわけで、endsWithの実装でした。

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

ではまた!