Как решить проблему в следующем сценарии?

Мой код выглядит следующим образом:

$flag = strpos($ques_id, SEARCH_QUESTION_ID_STR); 
if($flag == 0) {
    echo "In If"; die;
    // Find length of the defined string
    $str_length = strlen(SEARCH_QUESTION_ID_STR);
    $ques_id_str = substr_replace($ques_id,"",0, $str_length);            
} else {
    echo "In Else"; die;
    $ques_id_str = $ques_id;
    echo $ques_id_str; die;
}

Моя строка поиска всегда присутствует в 0-й позиции, но я хочу выполнить, если часть кода, только когда строка ssearch присутствует и когда она отсутствует, я хочу выполнить часть else. Но проблема в том, что я всегда получаю 0 независимо от того, присутствует строка поиска или отсутствует. Я не понимаю, как выполнить еще, когда строка поиска отсутствует.

2 ответа

Вы можете изменить следующим образом:

if ($flag === 0 ) // this will force $flag check as integer

или инвертируйте проверку в предложении IF следующим образом:

if ($flag === false) // this will check for string not found
  // code for string not found
} else {
  // code for string found
}

С этим примером он прекрасно работает для меня. Возможно, вам нужно === оператор сравнения..

$str = 'My string';
$srch = 's';
if (strpos($str,$srch) !== false) {
    echo 'Matched';
}
else {
    echo 'Not Matched';
}
Другие вопросы по тегам