以下我已经实施但对我没有意义......有人可以帮忙吗?
我想要以下内容:
如果monthsdue不等于 one_month_due 和付款不是常规订单那么{ // 做一点事 }
但为了让它工作我必须使用OR - 见下文
if(($monthsDue!=1) || ($Payment_Type!=STANDING_ORDER)){
// send emails according to more criteria
}
例如 如果他们到期一个月,但现金或支票付款,那么应该发生一些事情 如果他们是一个月到期并按常规支付,那么什么都不应该发生 如果他们是2个月到期并按常规支付,必须发生一些事情。
我很确定我错过了显而易见的事情!
答案 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运算符(||
)
&&
)
将其更改为
if(($monthsDue!=1) && ($Payment_Type!=STANDING_ORDER))