2016-03-30 103 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”) –