関数の概要
str_starts_with は、PHP 8.0 以降で利用可能な文字列操作関数です。この関数は、指定した文字列が別の文字列で始まっているかどうかを簡単に判定するために使われます。つまり、ある文字列の先頭が特定の文字列と一致するかどうかを調べる時に非常に便利です。
パラメータの説明
haystack(文字列):検索対象となる文字列です。needle(文字列):haystackの先頭と比較する文字列です。
戻り値
haystack が needle で始まっている場合は true、そうでなければ false を返します。
使用例
基本的な使い方
<?php
$text = "Hello World";
if (str_starts_with($text, "Hello")) {
echo "文字列は 'Hello' で始まっています。";
} else {
echo "文字列は 'Hello' で始まっていません。";
}
?>
この例では、文字列 "Hello World" が "Hello" で始まっているかどうかを判定し、結果を表示しています。
大文字・小文字を区別した判定
<?php
$text = "Hello World";
var_dump(str_starts_with($text, "hello"));
var_dump(str_starts_with($text, "Hello"));
?>
この関数は大文字と小文字を区別します。上記コードでは、"hello" で始まるかは false、"Hello" で始まるかは true となります。
空文字列を指定した場合
<?php
var_dump(str_starts_with("any string", ""));
?>
引数の needle に空文字列を渡した場合は、常に true が返されます。この挙動は仕様上の決まりですので覚えておきましょう。
関連する関数
str_ends_with:文字列が指定の文字列で終わっているかどうかを判定します。strpos:文字列内の特定の部分文字列の位置を検索します。同様の目的で使われることもありますが、大文字小文字の区別や挙動が異なります。substr:文字列の一部を取り出すために使われ、部分文字列の比較を自分で実装する時に利用されることがあります。
まとめ
str_starts_with はPHP 8.0で導入された、文字列の先頭が特定の文字列かどうかを判定するシンプルで使いやすい関数です。大文字・小文字を区別する点や、空の文字列が指定された場合の動作を理解することで、安全かつ効率的に文字列検索処理を実装できます。PHPで文字列の先頭一致を判定したい場合は、ぜひ活用しましょう。
