2015-11-14 86 views
-1

這條if語句觸發條件中的值,不管條件中的值如何,無論條件是否成立,條件爲什麼會觸發執行。我試過了每一個場景,但是每次都會觸發語句中的執行。如果語句條件觸發,無論條件是否滿足

if(1 != 1 && 1 != 2){ 
execute code 
exit(); 
} 

這裏是確切的代碼:

if($name1 != $winner && $name2 != $winner){ 
echo " The player you chose as winner is not associated with match id: $match_id "; 
exit(); 
} 
+1

不,這不是真的 - http://sandbox.onlinephpfunctions.com/code/a227c5ddd20c3e331bbed7a1c042438a3d4fc880 – user2655603

+0

正確的說法是不正確的,但在我的情況下它執行的代碼 – user5420896

+0

無論條件爲真,或者相同的代碼也存在於其他地方。 (禁止瘋狂的東西,像跳轉到塊的goto。)你真的試圖用''''if(false)'''替換條件嗎? – blues

回答

1

這是不可能的帖子中提到的條件,返回true

你說,如果你寫的代碼類似下面會發生什麼。然而:以後如果()

if(1 != 1 && 1 != 2);{ 
    echo 'case 1'; 
} 

注意;。你確定你的代碼在if()之後沒有分號嗎?如果您錯誤地放置了;,那麼if語句被評估爲單行語句,並且if語句塊中的代碼被if解釋器視爲以外的if條件的。基於更新的問題

編輯

請檢查以下內容:

  1. $winner正確設置爲的$name1$name2
  2. 驗證$winner的變量聲明範圍是否正確 - 我已經完成了PHP的一段時間,但這可能還有其他要注意的地方。

除了這些,我沒有看到任何其他原因,爲什麼這段代碼應該表現你的態度。

+0

即時確定在括號後沒有半分號 – user5420896

0

也許......請仔細看看所涉及的四個變量的值。

使用!=的比較可以給出一些令人驚訝的結果。

參見herehere。編輯:鏈接固定

即使沒有解決這個問題,最好儘量使用!==儘可能。