2012-02-25 3 views
0

ここでは奇妙な問題です。私はPHPで単純なハングマンゲームを書いています。現在の単語の文字が推測されたものと一致するかどうかを確認しながら、問題にぶつかります。in_arrayは真と偽の両方です

 

    $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文は、いつも私が

 

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

なぜif(in_array($ letter、...))というより、真偽と比較したいですか? – Borealid

+0

私はそれが動作しなかったので、ちょうどテストしていた。問題は最後にセミコロンでした。 – Softnux

答えて

6

それが原因の終わりにセミコロンのだに行を変更した場合でも、真と評価されます:次のように

コードがありますあなたの行:

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

セミコロンは条件を終了します。それ以降のコードは常に実行されます。

セミコロンを削除して、意図したとおりに機能させます。

+2

私は本当に、ベッドに行きます、ありがとう! – Softnux

関連する問題