関数の概要
PHPの str_contains 関数は、ある文字列の中に指定した文字列が含まれているかどうかを簡単に確認できる関数です。PHP 8.0.0 以降で利用可能で、文字列探索の処理をシンプルかつ直感的に行うことができます。主に文字列の存在チェックに使われ、条件分岐やフィルタリング処理などで便利です。
パラメータの説明
haystack(必須):検索対象の文字列。needle(必須):検索したい文字列。部分文字列として存在するかを調べます。
戻り値
str_contains は、haystack の中に needle が含まれていれば true を返し、含まれていなければ false を返します。戻り値はブール値です。
使用例
基本的な使い方
<?php
$text = "Hello, world!";
if (str_contains($text, "world")) {
echo "「world」が含まれています。";
} else {
echo "「world」は含まれていません。";
}
?>
この例では、$text に ‘world’ が含まれているかを判定し、含まれていればメッセージを出力します。
条件分岐での利用例
<?php
$filename = "example.txt";
if (str_contains($filename, ".txt")) {
echo "テキストファイルです。";
} else {
echo "テキストファイルではありません。";
}
?>
ファイル名に「.txt」が含まれているかどうかを判別し、ファイルの種類を判定しています。
複数の文字列に対する判定例
<?php
$comment = "今日は晴れですね。";
$keywords = ["晴れ", "雨", "曇り"];
foreach ($keywords as $word) {
if (str_contains($comment, $word)) {
echo "コメントに「{$word}」が含まれています。<br>";
}
}
?>
複数のキーワードを配列で用意し、その中でコメントに含まれている単語を繰り返しチェックしています。
関連する関数
strpos– 指定した文字列が現れる位置を返す。見つからなければfalse。strstr– 文字列の中に指定文字列以降を返す。str_ends_with– 文字列が特定の文字列で終わるかチェック。str_starts_with– 文字列が特定の文字列で始まるかチェック。
まとめ
str_contains はPHP 8.0以降で使える、文字列の中に特定の文字列が含まれているかを簡単に確認できる関数です。実務での文字列検証や条件判定をわかりやすく書けるため、ぜひ覚えておきたい関数の一つです。
また、従来の strpos などと比べてコードがシンプルになり、初心者にも直感的に理解しやすいのでおすすめです。
