Почему условие не выполняется?

  • 7 сентября 2023 г. 8:47
Ответы на вопрос 2
Условие не выполняется потому, что оператор "!== 0" проверяет полное соответствие результата функции strpos() нулю. Функция strpos() возвращает числовое значение, соответствующее позиции найденной строки в исходной строке данных. Если подстрока была найдена в начале строки (на позиции 0), то условие "!== 0" будет ложным и код внутри условия не выполнится.

Таким образом, в исходном коде следует заменить условие "!== 0" на условие "!== false". Это позволит проверить, была ли подстрока найдена в строке данных независимо от ее позиции.
Нужно самостоятельно научиться отлаживать свой код. Вместо вывода простого сообщения 'find data', стоит использовать функцию var_dump() для получения более подробной информации о данных. Также стоит добавить var_dump(strpos($value, 'г ')), чтобы увидеть результат поиска. Это поможет понять, почему выводится такой результат. Если нужно учесть и такой вариант ответа функции, то код надо будет доработать. Например, в PHP 8 есть готовая функция для такой проверки, которую можно использовать вместо strpos.
Похожие вопросы