Heim > Artikel > Backend-Entwicklung > Funktionen in PHP8: Effiziente String-Suchtechniken für str_contains()
Funktionen in PHP8: Effiziente String-Suchtechniken für str_contains()
Mit der Veröffentlichung von PHP8 haben wir weitere neue Funktionen und Verbesserungen, und eine der bemerkenswertesten neuen Funktionen ist die Funktion str_contains(). Mit dieser Funktion kann ermittelt werden, ob eine Zeichenfolge eine andere Zeichenfolge enthält. In diesem Artikel werden wir uns eingehend mit der Funktion str_contains() und ihrer Verwendung in PHP befassen und erfahren, wie man sie für effiziente String-Suchen verwendet.
Nachteile der regulären Methode
Um einen bestimmten Teilstring in einem String zu finden, haben wir früher normalerweise die Funktion strpos() verwendet. Diese Funktion durchsucht eine Zeichenfolge innerhalb einer anderen Zeichenfolge und gibt die erste gefundene Position zurück. Suchen Sie beispielsweise die Position, an der „Hallo“ zum ersten Mal in einer Zeichenfolge erscheint:
$string = 'hello world'; $position = strpos($string, 'hello');
Allerdings weist die Funktion strpos() einen Fehler auf, das heißt, sie stoppt, nachdem nach der ersten passenden Teilzeichenfolge gesucht wurde. Wenn wir alle passenden Teilzeichenfolgen in einer Zeichenfolge finden möchten, müssen wir eine Schleife verwenden, um nach jeder passenden Teilzeichenfolge zu suchen:
$string = 'hello world'; $needle = 'l'; $offset = 0; $positions = array(); while (($position = strpos($string, $needle, $offset)) !== false) { $positions[] = $position; $offset = $position + 1; }
Obwohl diese Methode funktioniert, ist der Code etwas ausführlich und die Suchgeschwindigkeit ist auch langsamer. In diesem Fall ist die Funktion str_contains() offensichtlich effizienter.
str_contains()-Funktion
str_contains()-Funktion ist eine neue Funktion, die in PHP8 hinzugefügt wurde. Sie kann schnell feststellen, ob eine Zeichenfolge eine andere Zeichenfolge enthält. Diese Funktion muss nur zwei Parameter übergeben: die zu durchsuchende Zeichenfolge und die zu durchsuchende Teilzeichenfolge. Es gibt einen booleschen Wert zurück, der angibt, ob in der gesuchten Zeichenfolge eine passende Teilzeichenfolge gefunden wurde. Hier ist ein einfaches Beispiel:
$string = 'hello world'; $needle = 'hello'; $is_contains = str_contains($string, $needle);
In diesem Fall ist der Wert von $is_contains wahr. Wenn wir diese Funktion erneut aufrufen, aber die Variable $needle auf „goodbye“ setzen, ist der Wert von $is_contains falsch.
Intern verwendet die Funktion str_contains() einen effizienteren Algorithmus, um Teilzeichenfolgen zu finden. Im Vergleich zur Funktion strpos() ist sie effizienter und der Code einfacher.
Sucheffizienz verbessern
Obwohl die Funktion str_contains() selbst sehr effizient ist, gibt es einige Techniken, die uns dabei helfen können, die Sucheffizienz weiter zu verbessern. Hier sind einige Tipps:
Wenn wir eine Zeichenfolge mehrmals durchsuchen müssen, sollten wir vermeiden, die Zeichenfolge wiederholt zu durchsuchen. Stattdessen sollten wir die Zeichenfolge einmal durchsuchen und die Ergebnisse in einer Variablen speichern. Mithilfe dieser Variablen können wir dann feststellen, ob ein String einen bestimmten Teilstring enthält, ohne jedes Mal erneut suchen zu müssen.
Wenn wir in einer langen Zeichenfolge nach einem Teilstring suchen müssen, können wir versuchen, den Suchumfang einzugrenzen. Beispielsweise können wir die Funktion substr() verwenden, um einen Teil der Originalzeichenfolge abzufangen und dann nach dieser Teilzeichenfolge zu suchen. Dadurch kann die zeitliche Komplexität erheblich reduziert werden.
Obwohl die Funktion str_contains() sehr effizient ist, kann ihre Verwendung in einer Schleife die Suche verlangsamen. Wenn wir mehrere Teilzeichenfolgen in einer Schleife durchsuchen müssen, sollten wir diese Teilzeichenfolgen zunächst in einem Array speichern und dann die Funktion str_contains() außerhalb der Schleife aufrufen. Dies vermeidet wiederholte Funktionsaufrufe und beschleunigt die Suche erheblich.
Fazit: Die Funktion str_contains() ist eine sehr nützliche neue Funktion in PHP8. Sie kann uns helfen, schnell festzustellen, ob eine Zeichenfolge eine andere Zeichenfolge enthält. Es ist effizienter als herkömmliche Methoden und der Code ist sauberer. Obwohl es bereits sehr effizient ist, können wir dennoch einige Tricks anwenden, um die Sucheffizienz zu verbessern. Unabhängig davon, ob Sie nach einer großen Zeichenfolge oder mehreren Teilzeichenfolgen suchen, ist die Verwendung der Funktion str_contains() eine sehr gute Wahl.
Das obige ist der detaillierte Inhalt vonFunktionen in PHP8: Effiziente String-Suchtechniken für str_contains(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!