почему стрипос оценивается как ложный

У меня есть строка $x = 'hello world.', Я хочу увидеть, содержит ли $ x строку $y = 'hello',

Если я сделаю

stripos($x, $y);

он возвращает числовой 0, индекс, где начинается строка $ y. Однако это оценивается как ЛОЖЬ. Как я могу оценить это, чтобы оно вернулось?

-1

Решение

Прочитайте предупреждение от руководство:

Предупреждение: Эта функция может возвращать логическое значение FALSE, но также может возвращать
небулево значение, которое оценивается как ЛОЖЬ. Пожалуйста, прочитайте раздел
Booleans для получения дополнительной информации. Использовать === оператор для тестирования
возвращаемое значение этой функции.

Так что вы должны использовать так:

if(stripos($x, $y) !== FALSE)
// Found
else
// Not found

Для справки см. этот пример из руководства.

2

Другие решения

если вы используете это, он вернет истину

 !(stripos($x, $y));$x = 'hello world.';
$y = 'hello';
echo !(stripos($x, $y));
0

По вопросам рекламы [email protected]