2016-03-30 105 views
0

第一個與等號將工作,我會期待。但第二個沒有按預期工作。等於不等於php

$nicktest = "new"; 
if ($nicktest == "new" || $nicktest == "fun" || $nicktest == "norm" || $nicktest == "pvp") 
     { 
      $odpoved = "Ok it works."; 
      echo $odpoved; 
      return; 
} 

     $nicktest = "new"; 
if ($nicktest != "new" || $nicktest != "fun" || $nicktest != "norm" || $nicktest != "pvp") 
     { 
      $odpoved = "Ok it works too why?"; 
      echo $odpoved; 
      return; 
} 
+1

你的第二條如果將始終爲真。想一想:在同一時間怎麼能等同於'new'和'fun'?! – Rizier123

+0

若要檢查項目列表中是否有某物相等,請使用'或'/'||'來檢查它是否不是某種東西,請使用'和'/'&&'。 – Jon

回答

0

你的4個條件得到如下評價:

假的,真的,真的,真的

現在,

if (false || true || true || true) { 
    // Code block is actually evaluated 
} 

如果你碰巧有:

if (false || false || false || false) { 
    // Code block wouldn't be evaluated 
} 

在此schem下e,至少有一個true條件會得到要評估的代碼

+0

感謝這使得更多的意義,我通常沒有這樣的問題。我不知道我怎麼能卡住這個:D –

+0

我不知道爲什麼,但我切換或和和它仍然不工作它無關緊要,如果$ nicktest是「新」,「樂趣」或隨機的東西..如果($ nicktest!=「new」&& nicktest!=「fun」&& nicktest!=「norm」) –