如何解决以下场景中的问题?

时间:2014-01-02 08:48:48

标签: php string if-statement strpos

我的代码如下:

$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。当搜索字符串不存在时,我没有得到如何执行else。

2 个答案:

答案 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
}

答案 1 :(得分:2)

通过这个例子,它对我来说很好。可能你需要===比较运算符..

$str = 'My string';
$srch = 's';
if (strpos($str,$srch) !== false) {
    echo 'Matched';
}
else {
    echo 'Not Matched';
}