【PHP8.x】str_starts_with関数の使い方

str_starts_with関数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

str_starts_with関数は、ある文字列が特定の文字列(プレフィックス、すなわち接頭辞)で始まっているかどうかを判別する関数です。この関数は、最初の引数として検査対象となる文字列(haystack)を、2番目の引数として検索したいプレフィックス文字列(needle)を受け取ります。もし検査対象の文字列が指定されたプレフィックスで始まっている場合、この関数は真偽値のtrueを返します。そうでない場合はfalseを返します。この比較は大文字と小文字を厳密に区別して行われます。

例えば、ウェブアプリケーションでユーザーがアップロードしたファイル名が「IMG_」で始まるかを確認したい場合や、URLが「https://」で始まるかを検証したい場合など、文字列の先頭部分を効率的にチェックする必要がある際に非常に役立ちます。この関数はPHP 8.0で新しく導入されたものであり、それ以前のバージョンでは利用できませんのでご注意ください。

以前は、同様の処理を行うためにsubstr()関数や正規表現などを用いる必要がありましたが、str_starts_with関数を使うことで、より直感的で読みやすく、かつ意図が明確なコードを書くことができるようになりました。システム開発において、特定の条件に基づいて処理を分岐させたり、入力データの整合性を検証したりする際など、文字列操作の多くの場面でその利便性を発揮します。この関数は、コードの簡潔さと可読性を向上させるための重要なツールの一つと言えるでしょう。

構文(syntax)

1<?php
2$haystack = "Hello, world!";
3$needle = "Hello";
4$result = str_starts_with($haystack, $needle);
5?>

引数(parameters)

string $haystack, string $needle

  • string $haystack: 検索対象の文字列
  • string $needle: 検索する文字列

戻り値(return)

bool

指定された文字列が、別の文字列で始まるかどうかを判定し、真偽値 (true または false) を返します。

サンプルコード

PHP str_starts_with で文字列の先頭を確認する

1<?php
2
3/**
4 * 文字列が指定された文字列で始まるかどうかを確認するサンプルコード
5 */
6function str_starts_with_example(): void
7{
8    $haystack = "This is a sample string.";
9    $needle1 = "This";
10    $needle2 = "That";
11
12    // $haystack が $needle1 で始まるか確認
13    if (str_starts_with($haystack, $needle1)) {
14        echo "'$haystack' は '$needle1' で始まります。\n";
15    } else {
16        echo "'$haystack' は '$needle1' で始まりません。\n";
17    }
18
19    // $haystack が $needle2 で始まるか確認
20    if (str_starts_with($haystack, $needle2)) {
21        echo "'$haystack' は '$needle2' で始まります。\n";
22    } else {
23        echo "'$haystack' は '$needle2' で始まりません。\n";
24    }
25}
26
27str_starts_with_example();

PHPのstr_starts_with関数は、ある文字列が指定された文字列で始まるかどうかを判定する関数です。PHP 8以降で使用できます。

この関数は、2つの引数を取ります。第一引数$haystackは、検索対象となる文字列です。第二引数$needleは、先頭に存在するかどうかを確認する文字列です。

サンプルコードでは、str_starts_with_example関数内で、$haystackという変数に"This is a sample string."という文字列を格納し、$needle1に"This"、$needle2に"That"という文字列を格納しています。

そして、str_starts_with関数を使って、$haystack$needle1または$needle2で始まるかどうかをそれぞれ確認しています。

str_starts_with($haystack, $needle1)は、$haystackが$needle1("This")で始まるため、trueを返します。結果として「'This is a sample string.' は 'This' で始まります。」と出力されます。

一方、str_starts_with($haystack, $needle2)は、$haystackが$needle2("That")で始まらないため、falseを返します。結果として「'This is a sample string.' は 'That' で始まりません。」と出力されます。

str_starts_with関数は、戻り値としてboolean型(trueまたはfalse)を返します。文字列の先頭一致を判定する際に非常に便利な関数です。

str_starts_with関数は、PHP 8 から導入された文字列関数です。第一引数 $haystack が、第二引数 $needle で始まるかどうかを判定します。大文字・小文字は区別されるため、注意が必要です。もし大文字・小文字を区別せずに比較したい場合は、strtolower 関数などで両方の文字列を小文字に変換してから比較してください。また、$needle が空文字列の場合、str_starts_with は常に true を返します。予期せぬ結果にならないよう、空文字列のチェックも検討してください。

関連コンテンツ