PHP 8のstr_contains()関数で文字列に部分文字列が含まれるかどうかを判定する方法
PHP 8で新たに導入された str_contains() 関数は、ある文字列の中に指定した部分文字列が含まれているかどうかを判定します。第1引数(検索対象の文字列)の中に第2引数(検索したい部分文字列)が存在すれば true、存在しなければ false をブール値として返す、非常に直感的で分かりやすい関数です。
str_contains(string $haystack, string $needle): bool
例1:PHP 8 の str_contains() 関数
<?php
if (str_contains('great reading tutorial', 'tutorial')) {
var_dump('Tutorial has been found');
}
?>出力結果
string(23) "Tutorial has been found"
この例では、「great reading tutorial」という文字列の中に「tutorial」が含まれているため、条件式は true となり、var_dump() によってメッセージが出力されます。
例2:部分文字列が見つからない場合
<?php
if (str_contains('great reading tutorial', 'hello')){
var_dump('great reading');
}
?>ポイント: 上記のプログラムでは、第1引数の文字列内に「hello」が存在しないため、str_contains() は false を返し、if文の中の処理は実行されません。
PHP 7.x での代替手段:strpos() 関数
PHP 7.x 以前では、文字列に特定の文字列が含まれているかどうかを調べるために strpos() 関数が使われてきました。この関数は、部分文字列が見つかった場合はその位置(オフセット)を返し、見つからなかった場合は false を返します。
if (strpos('string with lots of words', 'words') !== false) { /* … */ }例:PHP 7.x の strpos() 関数
<?php
$string = 'Hello World!';
if (strpos($string, 'Hello') !== false) {
echo 'True';
}
?>出力結果
True
注意点: strpos() を使う際は、返り値の比較に必ず「!== false」を使用しましょう。部分文字列が文字列の先頭(位置0)に見つかった場合でも正しく判定できるようになります。「== false」のような緩い比較を行うと、位置0が false と評価されて誤った結果になる恐れがあります。
このように、PHP 8 の str_contains() を使えば、strpos() のような位置情報の比較や厳密な型チェックを意識することなく、文字列の包含判定をシンプルかつ可読性高く記述できるようになりました。
-
PHPのstr_repeat()関数とは?文字列を繰り返す方法を解説
PHPのstr_repeat()関数は、指定した文字列を指定回数だけ繰り返して出力するための組み込み関数です。区切り線やパディング、テスト用のダミーデータ生成など、さまざまな場面で活用できます。基本構文str_repeat(str_to_repeat, multiplier)パラメータstr_to_repeat − 繰り返したい対象の文字列を指定します。multiplier − 文字列を繰り返す回数を指定します。0以上の整数である必要があります。0を指定した場合は空文字列が返されます。戻り値str_repeat()関数は、繰り返し処理を行った結果の文字列を返します。使用例以下は、ドル記号「$」
-
Javaで文字列に部分文字列が含まれているか確認する方法|contains()の使い方を解説
はじめに この記事では、文字列の中に特定の部分文字列が含まれているかどうかを確認する方法を解説します。 まず用語を整理しておきましょう。文字列(String)とは、1つ以上の文字から構成され、ダブルクォート( )で囲まれたデータ型のことです。そして、その文字列の一部を切り出したものを部分文字列(substring)と呼びます。 Javaでは、Stringクラスが提供する contains() メソッドを使うことで、部分文字列の有無を簡単に判定できます。このメソッドは、引数に指定した文字列が含まれていれば true、含まれていなければ false を返します。 入力と出力のイメージ 入力の例: