Подскажите, как правильно пользоваться функцией strpos(). Делаю поиск по тексту с ее помощью, но часто получается что найденное оказывается на перовом месте и получается что эта функция возвращает 0 и мое вот это условие дает сбой и пропускает это слово: PHP: if (strpos($word, "слово")<> "") { echo $word; } Как правильно записать условие использующее эту функцию, чтобы оно выдавало результат даже если то что ищу в начале строки?
Так как-же все таки? Так: PHP: if (strpos($word, "слово") === false) { echo $word; } или так: PHP: if (strpos($word, "слово") != FALSE) { echo $word; } (На словах нужно такое: Если "слово" в переменной $word есть, то печатаем переменную $word)
О, это работает! А то мне неудачные книги по РНР попались. Многие нюансы в них не написаны. Приходилось городить огород с оператором ELSE. Недавно в мануале вычитал, что там в таких но обратных случаях три равно подряд нужно применять. А в моем случае пробовал ставить !=== - это не работало. Можете объяснить, почему в прямом случае нужно три равно ставить ===, а в обратном одно равно отбрасывается и остается !== ?
Для меня как-то непривычно такое обозначение. Но если это все-таки не экономия байта, а именно так и задумывалсь, что вместо = в обратном случае ставится ! - то все в порядке
А еще есть !FALSE, но: Код (Text): if (strpos($word, "слово") !FALSE) выдает ошибку, в то время как: Код (Text): if (strpos($word, "слово") == !FALSE) работает. И попробуй пойми все это
strpos($word, "слово") возращает позицию найденого совпадения, возращает false если нет совпадения. Позиция может быть нулевой. 0 == false, в тоже время 0 !== false. Следует делать строгую проверку. PHP: <? if (strpos($word, 'слово') !== false) { // есть совпадение }
Ti, спасибо за объяснение! Я этого не знал и не знал как его правильно записывать. Пытался вот так !=== но сами понимаете это не работало. Приходилось выкручиваться и дополнительно оператор ELSE использовать. Но теперь уже буду делать правильно!