如果在PHP中使用OR语句

时间:2013-10-26 20:12:13

标签: php if-statement operators

以下我已经实施但对我没有意义......有人可以帮忙吗?

我想要以下内容:

如果monthsdue不等于 one_month_due 付款不是常规订单那么{     // 做一点事 }

但为了让它工作我必须使用OR - 见下文

if(($monthsDue!=1) || ($Payment_Type!=STANDING_ORDER)){
    // send emails according to more criteria
}

例如 如果他们到期一个月,但现金或支票付款,那么应该发生一些事情 如果他们是一个月到期并按常规支付,那么什么都不应该发生 如果他们是2个月到期并按常规支付,必须发生一些事情。

我很确定我错过了显而易见的事情!

3 个答案:

答案 0 :(得分:2)

你应该只需要替换你的||与&&amp ;.

答案 1 :(得分:1)

if(($monthsDue!=1) && ($Payment_Type!=STANDING_ORDER)){
    // send emails according to more criteria
}

<强>&安培;&安培; = AND,而|| = OR。

http://php.net/manual/en/language.operators.logical.php

但是,如果你使用AND和OR,你最终会被这样的事情绊倒:

$this = true;
$that = false;

$truthiness = $this and $that;

想猜出真实性等于什么?

如果你说错了......错了!

上面的

$ truthity值为true。为什么? =具有比和更高的优先级。添加括号以显示隐式顺序使得这一点更加清晰:

($truthiness = $this) and $that

如果您使用&amp;&amp;而不是在第一个代码示例中,它将按预期工作并且是错误的。

需要注意的事情!

答案 2 :(得分:0)

您需要更改此声明:

if(($monthsDue!=1) || ($Payment_Type!=STANDING_ORDER))

这意味着“如果月份不等于one_month_due 付款不是通过常规订单然后{//做某事}”

但你需要 AND

所以用AND运算符(||

替换你的OR运算符(&&

将其更改为

if(($monthsDue!=1) && ($Payment_Type!=STANDING_ORDER))