in_array既是真的又是假的

时间:2012-02-25 01:21:43

标签: php arrays

奇怪的问题在这里。我正在用PHP编写一个简单的Hangman游戏,在检查当前单词中的字母是否与猜到的相符时,我遇到了问题。

代码如下:


    $letters = str_split($words[$_SESSION['hangman']['current_word']]);
    foreach($letters as $letter)
    {
        if(in_array($letter, $_SESSION['hangman']['guessed']) == True);
        {
            echo "true for ", $letter , "
"; } }

if语句将始终评估为true,即使我将行更改为


if(in_array($letter, $_SESSION['hangman']['guessed']) == False);

1 个答案:

答案 0 :(得分:6)

这是因为你行末尾的分号:

if(in_array($letter, $_SESSION['hangman']['guessed']) == False);
分号结束了条件;它之后的代码将永远执行。

删除分号以使其按预期工作。