PHP7 バージョンのリリースにより、PHP 言語のパフォーマンスが急速に向上し、最新バージョンの PHP8 には多くの新機能と拡張機能が追加されました。新機能の 1 つは str_ends_with() 関数です。文字判定 文字列が指定した文字で終わるかどうかをより簡単かつ直感的に判断できます。
str_ends_with() 関数の定義
str_ends_with() 関数は、PHP8 の新しい文字列処理関数であり、その機能は、文字列が指定された文字または部分文字列で終わるかどうかを判断することです。具体的には、次のように定義されます。
bool str_ends_with(string $haystack, string $needle): bool
このうち、$haystack は検査対象の文字列を表し、$needle は検索対象の文字または部分文字列を表します。 $haystack 文字列の末尾が $needle と同じ場合は true を返し、それ以外の場合は false を返します。
str_ends_with() 関数の使用例
次に、str_ends_with() 関数の使用例をいくつか見てみましょう。まず、URL を表す文字列 $url があるとします:
$url = "https://www.example.com";
次に、この URL が .com で終わるかどうかを判断したいとします。これを実現するには、str_ends_with() 関数を使用できます:
if (str_ends_with($url, ".com")) { echo "这是一个.com网址"; } else { echo "这不是一个.com网址"; }
上記のコードを実行すると、出力は次のようになります:
这是一个.com网址
さらに、str_ends_with() 関数は、文字列が複数の文字または部分文字列のいずれかで終わるかどうかの判断もサポートします。例:
if (str_ends_with($url, ["com", "net", "org"])) { echo "这是一个常见的顶级域名网址"; } else { echo "这不是一个常见的顶级域名网址"; }
上記のコードを実行すると、出力は次のようになります:
这是一个常见的顶级域名网址
str_ends_with() 関数は、文字列が空の文字列で終わるかどうかを判断するために使用することもできます。例:
if (str_ends_with($url, "")) { echo "这是一个空字符串"; } else { echo "这不是一个空字符串"; }
上記のコードを実行すると、出力は次のようになります:
这不是一个空字符串
str_ends_with() 関数が非常に実用的である理由
実際の開発では、インターセプト、置換、セグメンテーション、その他の操作などの文字列処理が必要です。その中でも、文字列が指定された文字または部分文字列で終わるかどうかを判断することは、非常に一般的な要件です。以前のバージョンでは、この機能を実現するために substr() 関数と strlen() 関数を使用する必要がある場合があります。例:
$url = "https://www.example.com"; $suffix = ".com"; if (substr($url, -strlen($suffix)) === $suffix) { echo "这是一个.com网址"; } else { echo "这不是一个.com网址"; }
substr() 関数と strlen() 関数を使用しても目的を達成できます。ただし、コードは長く、あまり直感的ではありません。また、substr() 関数は境界エラーが発生しやすいです。比較すると、str_ends_with() 関数はよりシンプルで実用的であり、開発効率とコードの可読性を大幅に向上させることができます。
もちろん、str_ends_with() 関数は万能ではなく、使用シナリオも限られています。たとえば、$needle 自体が $haystack の一部である場合でも、str_ends_with() 関数は true と評価されます。したがって、使用時には実際の状況に応じた判断と調整が必要です。
つまり、PHP8 のリリースにより、str_ends_with() 関数は開発者にさらなる利便性をもたらします。今後の開発作業では、さらに大きな役割を果たすことになると信じています。
以上がPHP8 の関数: str_ends_with() - 文字列が指定された文字で終わるかどうかを判断しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。