DANFA

PHP: Функция str_contains()

Функция str_contains() была введена в PHP 8.0 и позволяет проверить, содержит ли строка заданную подстроку. Это простой и удобный способ для работы со строками, который заменяет более сложные конструкции, такие как strpos() или регулярные выражения.

Синтаксис функции str_contains():
str_contains(string $haystack, string $needle): bool

  • $haystack: основная строка, в которой производится поиск.
  • $needle: подстрока, которую нужно найти.
  • Возвращаемое значение: true, если подстрока найдена, и false — если нет.

Пример использования:
$text = "Пример строки с пробелами";

if (str_contains($text, 'строка')) {
    echo "Строка содержит подстроку 'строка'.";
} else {
    echo "Строка не содержит подстроку 'строка'.";
}

Вывод:
Строка содержит подстроку 'строка'.

Преимущества str_contains()


  • Простота использования: функция str_contains() значительно упрощает проверку наличия подстроки в строке.
  • Чтение кода: код становится более читаемым и понятным, так как функция имеет интуитивно понятное название.
  • Производительность: str_contains() оптимизирована для работы со строками и работает быстрее, чем некоторые альтернативные методы.

Альтернативы str_contains()


До появления str_contains() в PHP использовались другие методы для проверки наличия подстроки:

Использование strpos():
$text = "Пример строки с пробелами";

if (strpos($text, 'строка') !== false) {
    echo "Строка содержит подстроку 'строка'.";
} else {
    echo "Строка не содержит подстроку 'строка'.";
}

Использование регулярных выражений:
$text = "Пример строки с пробелами";

if (preg_match('/строка/', $text)) {
    echo "Строка содержит подстроку 'строка'.";
} else {
    echo "Строка не содержит подстроку 'строка'.";
}

Заключение
Функция str_contains() — это мощный и удобный инструмент для работы со строками в PHP. Она значительно упрощает проверку наличия подстроки и делает код более читаемым. Если вы работаете с PHP 8.0 и выше, обязательно используйте str_contains() для улучшения вашего кода.

Автор:  09.11.2025 03:35:35 pm