<?php
if(false >= 0) echo "Good";
else echo "Bad";
// this code prints Good
?>
Это не ошибка, это «странное» логическое преобразование.
stripos
возвращает false, если строка не найдена, и false преобразуется в 0 в PHP.
Непосредственно из документации (проблема в другом):
Предупреждение. Эта функция может возвращать логическое значение ЛОЖЬ, но также может возвращать не-логическое значение, которое оцениваетсяЛОЖЬ, например 0 или "".Пожалуйста, прочитайте раздел о логических значениях для получения дополнительной информации.Используйте оператор === для проверки возвращаемого значения этой функции.