Если str_ireplace() не удовлетворяет условию php
У меня есть код, в котором я сопоставляю слова через запятую с текстом, с помощью функции str_ireplace():
$words = "word1, word2, word3";
$text = "This is word1 text word2";
if (str_ireplace(explode(', ', $words), '', $text) != $text) {
/*Логика*/
}
Скажите пожалуйста, как мне сделать обратную логику? Т.е. если ничего не будет найдено или сопоставлено.
else {} не работает.
Спасибо!
Ответы (1 шт):
Автор решения: phpBear
→ Ссылка
$words = "word1, word2, word3";
$text = "This is word1 text word2";
$str = str_ireplace(explode(', ', $words), '', $text);
if ( $str != $text) {
echo "Strings not equals!";
} else {
echo "Strings is equals!";
}
Почему так работает, а как у Вас нет? Читаем мануал https://www.php.net/manual/ru/function.str-ireplace
str_ireplace(
array|string $search,
array|string $replace,
string|array $subject,
int &$count = null
): string|array
Как видите возвращаемый тип string|array т.е по сути mixed без явного приведения к типу string интерпретатор не понимает какой же у Вас тип возвращается и не может сравнить корректно.