Вопрос про strpos

Тема в разделе "PHP", создана пользователем vlad_v, 29 авг 2011.

Модераторы: latteo
  1. vlad_v

    vlad_v

    Регистр.:
    30 июн 2006
    Сообщения:
    444
    Симпатии:
    67
    Почему это отдает FALSE?
    PHP:
    $a "readnewstoday";
    if(
    strpos($a,"read",0)){ 
        echo 
    "TRUE";
    }
    else{
        echo 
    "FALSE";
    }
    я уже выяснил опытным путем:
    что бы найти слово "read" в начале строки "readnewstoday"
    надо добавить пробел в начало этой строки.
    то есть, вот так заработает:
    PHP:
    $a " readnewstoday";
    if(
    strpos($a,"read",0)){ 
        echo 
    "TRUE";
    }
    else{
        echo 
    "FALSE";
    }
    но как на меня это хак, помоему так не должно быть.

    Вопрос:
    можно ли обойтись без добавления пробела в начало строки , как заставить работать первый пример?

    Спасибо!
     
  2. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    strpos возвращает 0 как первую позицию, а if понимает это как булевое значение false, надо уточнить что не только значение но ещё и типы должны быть одинаковые и поставит ===
    PHP:
    $a "readnewstoday";
    if(
    strpos($a,"read"0) === false){ 
        echo 
    "FALSE";
    }
    else{
        echo 
    "TRUE";
    }
     
    vlad_v нравится это.