我的 IF 语句有问题,尽管这是不正确的,但它始终为 TRUE。我正在使用 OR 运算符,因为我想在 IF 语句中捕获两种可能的情况。
数组字符串 ad_status 是“1”,但使用下面的 -3 返回,我期望 IF 为 FALSE。如果我从 IF 中删除 OR 和第二个语句,则 IF 的结果是正确的。
我做错了什么?谢谢。
if(($getadstatus['ad_status'] != "1" || $getadstatus['ad_status'] != "4"))
{
return -3;
exit;
}
额外的:
我想要做的是,如果 ad_status 不等于 1 或 4,则退出函数(此处未完整显示)。如果它等于 1 或 4 以外的任何其他值,则 IF 语句应返回 TRUE 并退出。
ad_status 可以是 0 到 4 之间的任何值。
最佳答案
您所说的是 not 1
或 not 4
的任何值都应返回 true。
对于“1”,您会得到声明
if( 1 != 1 || 1 != 4)
这意味着
if( false || true )
这当然是真的。
你需要的是:
if(!($value == 1 || $value==4))
与 ( de Morgan's law ) 相同
if($value != 1 && $value != 4)
关于php - 或在 PHP IF 语句中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6321392/