PHP的strpos()无法正常工作,并且始终处于if条件

时间:2019-01-08 15:41:44

标签: php strpos

我正在尝试检查代码中的字符串中是否不存在特定字符,而php显然不关心任何事情,并且总是进入if内

foreach($inserted as $letter)
{
    if(strpos($word, $letter) !== true) //if $letter not in $word
    {
        echo "$word , $letter, ";
        $lives--;
    }
}

在这种情况下,$ word是“ abc”,$ letter是“ b”,我尝试将很多随机的东西从true更改为false,但是我无法理解,任何人都可以帮忙我可以吗?

2 个答案:

答案 0 :(得分:4)

更改验证方式应解决此问题,如下所示:

     foreach($inserted as $letter)
        {
            //strpos returns false if the needle wasn't found
            if(strpos($word, $letter) === false) 
            {
                echo "$word , $letter, ";
                $lives--;
            }
        }

答案 1 :(得分:4)

if(strpos($word, $letter) === false) //if $letter not in $word
{
    echo "$word , $letter, ";
    $lives--;
}

另外,请注意明确检查false,如果匹配项在字符串的第0个索引中,strpos可能返回0(假值)...

例如

if (!strpos('word', 'w') {
    echo 'w is not in word';
}

将输出可能令人困惑的消息'w is not in word'