2009-10-20 1 views
3

Я пытаюсь получить strpos искать строку переменной $string для фразы «тест», и если она не содержит «тест» другой переменной $change переопределена как $string2 (где $change было определено ранее)Моя ошибка с функцией «strpos»? PHP

if (strpos($string, 'test') == false) { 
    $change = $string2; 
    break; 
}  

Но, к сожалению, это не работает.

Есть ошибки в вышеуказанном?

спасибо.

+0

возможно дубликат [Вопрос о StrPos в PHP] (http://stackoverflow.com/questions/1004897/question-about-strpos-in-php) – 2012-07-17 03:16:36

ответ

6

strpos возвращает false, если не находит строку, которая эквивалентна 0 в неспецифическом условном выражении в PHP. Обязательно используйте оператор === при сравнении с помощью strpos.

if (strpos($string, 'test') === false) { 
    $change = $string2; 
    break; 
} 
+1

+1 для согласования. – mauris

3

Попробуйте использовать

if (strpos($string, 'test') === false) 

=== instead of == 
3

strpos может возвращать «ложь» или может возвращать «0», который может быть неправильно как ложные, так что вместо того, чтобы с помощью оператора == сравнения (что означает «равно»), вы должны использовать === (что означает идентичность). Можно также рассмотреть трехкомпонентную заявление вместо перерыва:

$change = (strpos($string, 'test') === false) ? $string2 : $change; 

 Смежные вопросы

  • Нет связанных вопросов^_^