奇怪的问题在这里。我正在用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);
答案 0 :(得分:6)
这是因为你行末尾的分号:
if(in_array($letter, $_SESSION['hangman']['guessed']) == False);
分号结束了条件;它之后的代码将永远执行。
删除分号以使其按预期工作。