Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Вопрос на счет работы mb_strpos и FALSE
Делать надо так... Дело в том что в строке идексация эллементов идет с 0 позиции. Следовательно если слово идет с начала то функция вернет 0. Если делать сравнение не строгое (!=) то присходит приведение типов и следовательно 0 становится равный FALSE. Для того нужно применять строгое сравнение (!==). И если не ошибаюсь то в документации это говорится.
Webtest
Отправлено: 12 Сентября, 2014 - 11:10:38
Посетитель
Покинул форум
Сообщений всего: 286
Дата рег-ции: Июнь 2014
Помог: 0 раз(а)
RickMan, нет, в документации про точное сравнение с === FALSE.
RickMan
Отправлено: 12 Сентября, 2014 - 11:17:08
Участник
Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012
mb_strpos() возвращает числовую позицию первого появления needle в строке haystack. Если needle не найдена, возвращает FALSE.
.....
Первая позиция равна 0. Позиция второго символа равна 1, и так далее.
Вы правы. Но неужели по этому выражению сложно понять что если вхождение есть то возврат не равен FALSE. И если считать что вернуть может 0, и что 0 == FALSE то можно прийти к тому что 0 !== FALSE.
Sail
Отправлено: 15 Сентября, 2014 - 13:04:04
Участник
Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014
Помог: 57 раз(а)
Webtest пишет:
нет, в документации про точное сравнение с === FALSE
Не только!
Вот подробности про операторы сравнения и их работу с различными типами операндов.
esterio
Отправлено: 15 Сентября, 2014 - 16:04:38
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.