2012-02-25 54 views
0

奇怪的問題在這裏。我正在用PHP編寫一個簡單的Hang子手遊戲,在檢查當前單詞中的字母是否與猜測的字母匹配時,我遇到了一個問題。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 2012-02-25 01:24:14

+0

我只是在測試,因爲它沒有工作。最後的問題是分號。 – Softnux 2012-02-25 01:27:05

回答

6

這是因爲在年底的分號你的線路:

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

分號結束條件;它後面的代碼將始終執行。

刪除分號以使其按預期工作。

+2

我真的應該去睡覺,謝謝! – Softnux 2012-02-25 01:24:27

相關問題