0

我已经实施了以下内容,但对我来说没有意义……有人可以帮忙吗?

我想要以下内容:

如果monthsdue 不等于one_month_due 并且付款不是按常规付款,那么{ // 做某事}

但为了让它工作,我不得不使用 OR - 见下文

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

例如,如果他们到期 1 个月但以现金或支票支付,那么如果他们到期 1 个月并按常规付款,则应该发生一些事情,那么如果他们 2 个月到期并且按常规付款,则应该不会发生任何事情必须发生。

我很确定我错过了明显的!

4

3 回答 3

2

你应该只需要更换你的 || 和 &&。

于 2013-10-26T20:16:01.443 回答
1
if(($monthsDue!=1) && ($Payment_Type!=STANDING_ORDER)){
    // send emails according to more criteria
}

&& = 与,而 || = 或。

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

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

$this = true;
$that = false;

$truthiness = $this and $that;

想猜猜 $truthiness 等于什么?

如果你说假……错了!

上面的 $truthiness 的值为 true。为什么?= 的优先级高于 and。添加括号以显示隐含顺序使这一点更清楚:

($truthiness = $this) and $that

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

只是需要注意的事情!

于 2013-10-26T20:19:45.077 回答
0

您需要更改此语句:

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

这意味着“如果monthsdue 不等于one_month_due付款不是按常规顺序,那么{ // 做某事}”

但是你需要在那边

||所以用 AND 运算符()替换你的 OR 运算符( &&

将其更改为

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

于 2013-10-27T08:18:59.257 回答