Signatur
str_contains(string $haystack, string $needle): bool
Beschreibung
Seit PHP 8.0 gibt es endlich eine native, gut lesbare Prüfung, ob ein Teilstring vorkommt. Vorher musste man strpos($haystack, $needle) !== false schreiben — ein Klassiker für Off-by-One-Bugs.
Die Prüfung ist case-sensitive. Für case-insensitive Vergleich vorher beide Strings in Kleinbuchstaben umwandeln (mb_strtolower()).
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $haystack Pflicht | string | — | Der String, in dem gesucht wird. |
| $needle Pflicht | string | — | Der gesuchte Teilstring. Leerer String gibt immer true zurück. |
Rückgabewert
Typ
bool
Beschreibung
true, wenn $needle in $haystack vorkommt.Beispiele
Domain-Check
<?php
if (str_contains($email, '\@example.com')) {
// interner Nutzer
}
Case-insensitive
<?php
if (str_contains(mb_strtolower($title), 'php')) {
echo 'PHP erwähnt';
}