ホームページ  >  記事  >  バックエンド開発  >  PHP8 の関数 str_contains() を使用して、高速な文字列一致を実現します。

PHP8 の関数 str_contains() を使用して、高速な文字列一致を実現します。

王林
王林オリジナル
2023-05-17 18:31:361808ブラウズ

インターネットの発展に伴い、文字列処理はプログラミングにおける一般的なタスクになりました。文字列のマッチングの問題を解決するために、PHP8 では新しい関数 str_contains() が導入されました。この関数は、文字列に指定された文字列が含まれているかどうかをすばやく返すことができます。この関数は、文字列のマッチングを頻繁に実行する必要がある開発者にとって非常に便利なツールです。

1. str_contains() 関数の基本的な使用法
str_contains() 関数は、文字列に指定された文字列が含まれているかどうかを判断するために使用されます。その構文は次のとおりです:

bool str_contains( string $haystack, string $needle)
このうち、$haystack は元の文字列を表し、$needle は検出される文字列を表します。元の文字列に指定された文字列が含まれている場合、関数は true を返し、それ以外の場合は false を返します。

ここにいくつかの例があります:

例 1:

$str1 = "Hello World!";
if (str_contains($str1, "World")) {

echo "The string contains the word 'World'";

} else {

echo "The string does not contain the word 'World'";

}

この例では、$haystack は「Hello World!」、$needle は「World」です。 $haystack には $needle が含まれているため、関数は true を返し、「文字列には単語 'World' が含まれています」という文字列を出力します。

例 2:

$str2 = "Hello World!";
if (str_contains($str2, "Universe")) {

echo "The string contains the word 'Universe'";

} else {

echo "The string does not contain the word 'Universe'";

}

この例では、$haystack は「Hello World!」、$needle は「Universe」です。 $haystack には $needle が含まれていないため、関数は false を返し、「文字列には単語 'Universe' が含まれていません」という文字列を出力します。

2. str_contains() 関数の利点
以前の PHP には、文字列内の部分文字列を検索してその位置を返すために使用される関数 strstr() および strpos() がすでにありました。ただし、str_contains() 関数には次の利点があります。

  1. より簡潔なコード
    str_contains() 関数を使用すると、文字列照合タスクを完了するために必要なコードは 1 行だけです。例:

if (str_contains($str, "needle")) {

// Code to execute if the string contains "needle"

}

比較するには、strstr() または strpos( ) を使用します。関数の場合、一致が成功したかどうかを判断する前に、戻り値に対して if 条件判定を実行する必要があります。

  1. より直感的なコード
    str_contains() 関数の名前は非常に直感的であり、その使用方法はプログラマーの自然な習慣により沿っています。他の関数と比較して、この関数を使用する開発者は、適切なパラメーター値を見つけるために関数ドキュメントを読む必要がなく、直接使用するとより認識しやすくなります。
  2. パフォーマンスの向上
    テストの結果、str_contains() 関数のパフォーマンスは、以前の文字列一致関数と同等かそれ以上でした。データ量が大きい場合、str_contains() 関数は内部実装でより効率的なアルゴリズムを使用するため、より高速なマッチング速度を実現できます。

3. str_contains() 関数を使用するようにプロジェクトを移行する方法
プロジェクトで str_contains() 関数を使用する場合は、PHP のバージョンが8.0以降にアップグレードしました。アップグレードが完了したら、プロジェクト内の strstr() または strpos() 関数が使用される場所を変更する必要があります。

まず、プロジェクトの実際の状況に基づいて、更新する必要がある場所を選択する必要があります。大量のコードで関数を使用する必要がある場合は、検索および置換関数を使用して、古い関数呼び出しを新しい関数呼び出しに変更できます。

たとえば、$strstr() 関数を呼び出します。

if (strstr($haystack, $needle)) {

// ...

}

Modify $str_contains() 関数を呼び出します。

if (str_contains($haystack, $needle)) {

// ...

}

このようにして、プロジェクトで str_contains の使用を開始できます。 () 関数。

4. 結論
str_contains() 関数は、PHP8 で導入された文字列マッチング関数の 1 つで、パフォーマンスが向上し、より簡潔で明確に使用できます。 strstr() 関数または strpos() 関数をまだ使用している場合は、必要に応じて str_contains() 関数に積極的に移行することをお勧めします。

以上がPHP8 の関数 str_contains() を使用して、高速な文字列一致を実現します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。