PHP strpos () не работает и всегда попадает в условие if - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь проверить, присутствует ли определенный символ в строке в моем коде, и, очевидно, 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 голосов
/ 08 января 2019
if(strpos($word, $letter) === false) //if $letter not in $word
{
    echo "$word , $letter, ";
    $lives--;
}

также, будьте внимательны, чтобы явно проверить false, strpos может вернуть 0 (значение Фолси), если совпадение находится в 0-м индексе строки ...

например

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

выведет, возможно, сбивающее с толку сообщение 'w is not in word'

0 голосов
/ 08 января 2019

Изменение способа проверки должно исправить это, как показано ниже:

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