微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果不是或声明

如何解决如果不是或声明

| 非常简单的问题...我遇到一个问题,即if语句不起作用?我要声明的是,当$ quantity不等于20或40或80或160时在此处显示
if($quantity != \'20\' || $quantity !=\'40\' || $quantity != \'80\' || $quantity != \'160\')
{       
echo \"here\";
}
任何建议,将不胜感激。 :)     

解决方法

        试试这个,它更干净(IMO):
if (!in_array($quantity,array(20,40,80,160))
{
    echo \"here\";
}
否则,只需将
||
替换为
&&
。     ,        替换|| (或)&&(和);) 这样,您检查某物是否为20,然后检查某物是否为40,依此类推。因此,例如,当您有40时,第一次检查(!= 20)只会返回True(因为您使用的是or \'s),而它永远不会达到第二或进一步检查。     ,        如果
$quantity
是40,则不是20,因此满足条件。 学习并了解http://en.wikipedia.org/wiki/De_Morgan%27s_Law。     ,        如果您不希望$ quantity与它们相等,则需要将\'|| \'或运算符更改为and运算符\'&& \'。     ,        通过弄清楚您的算法,我可以更轻松地检查更大的数字。 迭代式:
<?php
for ($i = 0; $i <= 3; $i++) {
  if ($quantity == pow(2,$i)*20) { echo \"not here\"; goto matched; }
}
echo \"here\";
matched:
?>
更多功能:
<?php
if (!in_array($quantity,array_map(
    function ($i) { return pow(2,$i)*20; },range(0,3)
  )
)) {
  echo \"here\";
} else {
  echo \"not here\";
}
?>
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。